|
本I2C专题涉及I2C主模式和从模式,并以STM32F407系列MCU做为示例。我们首先总结I2C从模式编程时遇到的各种各样的问题及解决办法,欢迎大家持续关注。 在看STM32F407的用户编程手册时,I2C的中断中有STOP信号接收成功的触发——STOPF中断。所以我就简单地认为从机接收到主机发送的STOP信号后立即触发一个STOP中断。我也就自然地将此信号做为我仌通讯协议的帧尾判断条件使用。果然不出意外的发生了意外,帧尾判断严重失败。 使用逻辑分析仪,我在对I2C总线进行监测分析时,看到I2C通讯正常,仅仅是我软件判断异常导致的帧尾判断异常,所以……,我又返回STM32F407的用户编程手册来看看所以然。
这一看,果然,人家的应用事件处理策略还是高我一筹。 1、STOPF中断,首先是仅有从模式下才会支持触发,主模式下这个中断无效; 2、当接收到NACK时,STOPF则不会置位; 3、如果看到STOPF置位后,仍然建议通过读SR1寄存器和写CR1寄存器的方式来清除STOPF标志位;
|
HAL_I2C_Mem_Read_IT读取INA226多个寄存器只有第一个寄存器是对的,其他全为0XFF
STM32H747XG下载一次仿真器就检测不到,运行不能正常
STM8L的bootload中断向量表重映射
stm32f746g-disco开发板的串口通讯连接方式
在学习stm32,有哪些视频教程呢?想系统研究研究
DMA传输完成后,串口与DMA一直处于忙状态
STM32G474VET6如何配置HRTIM的中心对齐模式
请问怎么使用stm32+spi实现bissc通信?有大佬弄过吗?
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
请问设备剧烈运动后静置数据无法归零,必须重启设备才能归零,是什么原因呢,如何处理,谢谢各位有偿咨询各位
微信公众号
手机版