OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11540|回复: 20

STM32的硬件I2C 产生不了起始信号!!

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-9-9
在线时间
6 小时
发表于 2016-9-9 09:22:49 | 显示全部楼层 |阅读模式
1金钱
我最近用I2C读取EEPROM的操作,用硬件I2C模拟,库函数。结果产生不了起始信号。具体如下
求解答。。。

图1.png
图2.png
图片3.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2016-9-9 09:25:03 | 显示全部楼层
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-9-9
在线时间
6 小时
 楼主| 发表于 2016-9-9 09:30:37 | 显示全部楼层

感觉还是硬件方便,但是出问题,,还是软件靠谱
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-9-9
在线时间
6 小时
 楼主| 发表于 2016-9-9 09:52:09 | 显示全部楼层
时钟和引脚已经配置好了
BMN]PUQQX@C9XVR`J@9O$)W.png
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2016-9-9 10:21:11 | 显示全部楼层
好像听原子哥说起过硬件I2C有问题,不是很可靠
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-9-9 12:30:23 | 显示全部楼层
xujian468 发表于 2016-9-9 10:21
好像听原子哥说起过硬件I2C有问题,不是很可靠

的确是有bug,103系列的做主机不行,貌似做从设备还好,我折腾的目前运行还行,从设备模式,没做主机,有些细节需要注意就是了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-9-9 12:31:24 | 显示全部楼层
小黑熊 发表于 2016-9-9 09:52
时钟和引脚已经配置好了

将GPIO_SetBits这句去掉,外部有上拉就可以了,上拉电阻建议4.7K,具体阻值看信号完整性
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-21 21:32:35 | 显示全部楼层
楼主硬件模拟解决了吗????
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-21 21:34:41 | 显示全部楼层
八度空间 发表于 2016-9-9 12:30
的确是有bug,103系列的做主机不行,貌似做从设备还好,我折腾的目前运行还行,从设备模式,没做主机,有 ...

请问你写的程序STM32做主机能运行吗???能否分享一下!!!!!
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-22 12:36:44 | 显示全部楼层
慕名兰 发表于 2016-11-21 21:34
请问你写的程序STM32做主机能运行吗???能否分享一下!!!!!

稳定性不咋好
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-22 15:13:07 | 显示全部楼层
本帖最后由 慕名兰 于 2016-11-22 15:17 编辑

我遇到的问题很奇葩:在主函数单步调试(不进入任何函数)时,I2C是好的,但是全速运行时就卡在清除ADDR的while里面,结果发现是这样的:
在没进入清除ADDR函数前,ADDR自动的清零了,导致一直死循环。。。。之前学DMA的时候,也出现的类似的情况,有些位本来是要读或写才能清除,但是调试时就自动的清除了
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-22 18:22:58 | 显示全部楼层
八度空间 发表于 2016-9-9 12:31
将GPIO_SetBits这句去掉,外部有上拉就可以了,上拉电阻建议4.7K,具体阻值看信号完整性

请问”八度空间“是用的I2C1还是I2C2,我看很多人都用I2C1,I2C2不能用吗?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-22 19:43:23 | 显示全部楼层
慕名兰 发表于 2016-11-22 18:22
请问”八度空间“是用的I2C1还是I2C2,我看很多人都用I2C1,I2C2不能用吗?

I2C1,做从设备
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-22 21:13:27 | 显示全部楼层
慕名兰 发表于 2016-11-22 15:13
我遇到的问题很奇葩:在主函数单步调试(不进入任何函数)时,I2C是好的,但是全速运行时就卡在清除ADDR ...

清除ADDR位是有条件的,你操作了硬件就会自动清零,详细看参考手册
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

14

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2013-6-23
在线时间
59 小时
发表于 2016-11-22 21:36:33 | 显示全部楼层
STM32F1系列的单片机要用硬件IIC,就用HAL库,不要用标准库,用HAL库的硬件IIC是很稳定的,很好用的,如果是STM32F4系列的单片机,直接软件模拟吧,因为BUSY位有BUG
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-22 22:41:10 | 显示全部楼层
八度空间 发表于 2016-11-22 21:13
清除ADDR位是有条件的,你操作了硬件就会自动清零,详细看参考手册

我看数据手册是说读SR1后在读SR2后将清除这个位,我在看看从设备是否会产生应答。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-22 22:41:11 | 显示全部楼层
八度空间 发表于 2016-11-22 21:13
清除ADDR位是有条件的,你操作了硬件就会自动清零,详细看参考手册

我看数据手册是说读SR1后在读SR2后将清除这个位,我在看看从设备是否会产生应答。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-23 12:22:46 | 显示全部楼层
慕名兰 发表于 2016-11-22 22:41
我看数据手册是说读SR1后在读SR2后将清除这个位,我在看看从设备是否会产生应答。

那就是了,只要你读取了SR1,还没读取SR2是不会清的,两个都读取了就清零了,我测试的结果
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

1

主题

40

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3551
金钱
3551
注册时间
2017-5-23
在线时间
257 小时
发表于 2017-8-27 16:55:51 | 显示全部楼层
请问楼主,问题解决了吗?
回复

使用道具 举报

10

主题

54

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2017-2-13
在线时间
84 小时
发表于 2017-8-28 07:56:42 | 显示全部楼层
楼主怎么解决的?我最近也在用硬件读取MPU6050发现不好用,程序老卡住,所以就用了模拟iic。
回复

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2018-5-27
在线时间
104 小时
发表于 2021-11-18 15:52:21 | 显示全部楼层
楼主咋解决的啊,我也是EV5检测卡住,几天了不知道啥情况。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 08:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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