请教,Stm8L101开了中断就不能用模拟I2C吗?

2019-12-25 18:49发布

请教各位对stm8比较熟的朋友,我在一个小项目里面用了模拟I2C,因为模块I2C通讯老有问题,模拟I2C通讯很稳定。然后需要使能一个定时器中断,未使能中断之前I2C通讯很正常,一使能中断,模拟I2C的操作读SDA数据和拉低SDA给一个ACK信号就会疯狂产生EXTI0_IRQHandler中断,导致程序无法正常运行。我并没有使能I2C的两根线的中断。即便把定时器关掉,什么中断都不开,只要调用enableInterrupts();使能总中断,模拟I2C的正常读写操作就会产生中断。感觉很怪啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
wye11083
1楼-- · 2019-12-25 19:55
配成边沿触发再试。
MegaHealth
2楼-- · 2019-12-26 01:23
wye11083 发表于 2017-8-18 13:44
配成边沿触发再试。

这个问题我规避掉了,模拟I2C的方式在设置SDA为输入读数据和产生一个ACK(即拉低SDA)的时候在使能中断的情况下就会疯狂产生exti0的中断;不知道是不是芯片的问题。
总之,我现在是使用了库来规避了这个问题,现在系统正常了。
huarana
3楼-- · 2019-12-26 04:47
 精彩回答 2  元偷偷看……

一周热门 更多>