stm32iicdma
时间: 2023-08-09 17:08:25 浏览: 126
STM32的IIC外设在一些情况下可能会出现问题。有人反映硬件IIC不好用,因此在一些项目中使用模拟IIC来实现相应的操作。然而,使用硬件IIC可以提高效率。但是,有时候硬件IIC可能会出现问题。例如,有人遇到了IIC驱动死掉的情况,调用发送函数会返回失败,但CPU正常运行。通过抓波形可以发现一开始有正常的IIC波形,但马上就消失了。这是因为STM32的硬件IIC处于busy状态,导致放弃了后续的IIC操作。为了解决这个问题,可以尝试通过对IIC外设复位来解决。\[2\]
另外,还有人在调试好IIC外设后发现IIC的DMA也不是直接就能使用。主要问题在于最后的STOP信号丢失。通过抓波形发现主机最后没有发送STOP信号。解决这个问题的方法是,在调用DMA发送函数成功后,强制控制IIC的寄存器使其发送一个STOP信号。\[3\]这样就可以解决这个问题了。
综上所述,对于STM32的IIC外设和DMA的使用,可能会遇到一些问题,但可以通过复位IIC外设和发送强制STOP信号来解决。
#### 引用[.reference_title]
- *1* *2* *3* [基于STM32F405的硬件IIC+DMA操作分享](https://blog.csdn.net/Cris_Jay/article/details/125694467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文