发布网友 发布时间:2022-05-02 03:35
共2个回答
热心网友 时间:2023-10-09 08:26
不用搞这个了STM32的IIC通讯有个bug。追答我试过。用STM32的IIC功能来读写24c02。前两个周期是可以正常读写的。一般到第三个字节开始,以后全都凌乱了,凌乱了,乱了,了。
因为CPU要处理很多不同的任务,一旦其他任务占用了CPU(空循环都不行),ACK就容易被错过。
官网的解决方案是,用最高优先级的DMA来实现IIC传输。
你google或者百度搜索一下。很多人都遇到这样的问题。虽然官网不承认这是个bug,但是实际上绝大多数情况下,这个IIC就是不好用。
热心网友 时间:2023-10-09 08:26
STM32F103的硬件I2C着实不好用,但Cortex-M0内核的F051对硬件I2C做了很大程度修改,比M3的要好用。