搜索
bottom↓
回复: 14

STM32F103 硬件IIC 管脚不能通信

[复制链接]

出0入0汤圆

发表于 2016-8-10 14:39:20 | 显示全部楼层 |阅读模式
用STM32 硬件IIC,读写程序是STM32CUBEMX 生成的。上次生产500个没有问题,这次生产出现大概10%的不良。
换个芯片就好。用不良的电路板仿真一下都死在了IIC上面。想问一下是这次买的芯片有问题,还是说stm32的硬件IIC
没有调好,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-8-10 22:01:28 | 显示全部楼层
芯片问题,如果不放心就写个软件模拟I2C测试下就知道了

出0入0汤圆

发表于 2016-8-11 09:45:54 | 显示全部楼层
好像之前听说是是芯片硬件设计的BUG

出0入0汤圆

发表于 2016-8-11 11:59:21 | 显示全部楼层
f1系列的i2c都有毛病,模拟吧

出0入0汤圆

 楼主| 发表于 2016-8-11 12:14:26 | 显示全部楼层
软件模拟是可以的,但是现在生产的大部分都是好的,上次买的500片没出现一个;这次的出现少部分;不知道换个批次的会不会好

出0入0汤圆

发表于 2016-8-11 12:24:07 来自手机 | 显示全部楼层
stm8 user至今都没用会硬件iic

出0入0汤圆

发表于 2016-8-11 12:34:35 | 显示全部楼层
可以解决的。 就是等待那里处理一下就好了。

出0入0汤圆

发表于 2016-8-11 13:03:26 | 显示全部楼层
都说STM32的IIC硬件接口有问题,是的,确实有问题。但官司方出勘误了,楼主去官网找一下勘误,看一下吧。。。

这种事儿绕不过去的,何不把它搞个明白。。。

主要是读取最后2个字节和1个字节的情况下,时序需要特别处理一下。

出0入0汤圆

发表于 2016-8-11 15:25:23 | 显示全部楼层
本帖最后由 yoyotansa 于 2016-8-11 15:27 编辑

我现在用的就是硬件IIC,读取触摸屏芯片,没有问题;但是我是没有开DMA的,我是严格按照时序来的,可能时效性上不是很好,中间很多等待语句。还有,我用的都是老版本的库文件,没有用cube,用过一次不顺手就没用了。

出0入0汤圆

发表于 2016-8-11 18:47:00 | 显示全部楼层
用模拟的吧,虽然慢些,但是可靠

出0入0汤圆

 楼主| 发表于 2016-8-17 18:33:43 | 显示全部楼层
竟然好了,改了下程序。
stm32cubemx生成的程序,IIC是先设置管脚,才使能IIC时钟。
我翻看它带的例程竟然都是先使能时钟,然后设置IO。
我是用自动生成的,所以是后使能的时钟,改成先使能时钟后,原来不正常工作的板子,变好了。
不明白,stm32cubemx生成的程序,所有其他的外设都是先使能时钟,为啥唯独IIC后使能时钟。

出0入0汤圆

 楼主| 发表于 2016-8-17 18:35:20 | 显示全部楼层
if(hi2c->Instance==I2C1)
  {
  /* USER CODE BEGIN I2C1_MspInit 0 */

  /* USER CODE END I2C1_MspInit 0 */
  
    /**I2C1 GPIO Configuration   
    PB6     ------> I2C1_SCL
    PB7     ------> I2C1_SDA
    */
    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    /* Peripheral clock enable */
    __HAL_RCC_I2C1_CLK_ENABLE();
  /* USER CODE BEGIN I2C1_MspInit 1 */

  /* USER CODE END I2C1_MspInit 1 */
  }
这是我用最新版本的stm32cubemx生成的

出0入0汤圆

发表于 2016-8-17 18:45:38 | 显示全部楼层
lsls666888 发表于 2016-8-11 18:47
用模拟的吧,虽然慢些,但是可靠

我使用硬件的 IIc 没有出现过任何问题哟,不过我没有使用dma功能,我使用标准库与hal都使用过,都挺好的

出0入0汤圆

发表于 2016-8-17 21:54:55 | 显示全部楼层
我也是硬件IIC,参照官方的例程,操作时钟芯片

不过官方例程有很多while循环等待信号

出0入0汤圆

发表于 2017-2-17 11:09:38 | 显示全部楼层
是应该有等待
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 23:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表