几种方案吧,最老的STM32F1系列的iic问题是最严重的,有两种解决方案:
1)如果iic使用非常不频繁,比如上电读取上次数据,掉电前保存数据到24Cxx里面,可以用软件模拟,不要考虑影响RTOS问题。
2)如果iic是系统最关键的使用最频繁的peripheral,那么可以给最高优先级中断,或者给一条DMA通道,总之iic操作的时候,没有别的peripherals来打扰,那么stm32的硬件iic还是非常可靠的。
对于后来的stm32f4、f0系列,据说已经改进了iic,问题能少一些,你可以到st的官方网站找errata。
当年被stm32f103的硬件iic和rtc折磨坏了,以至于现在养成了先看errata再看datasheet,最后看reference manual的习惯。
|