关于 STM32G0/G4/L4 HAL_IIC HAL_I2C_Mem_Read 函数读取M24C64存储芯片遇到的问题
生活随笔
收集整理的這篇文章主要介紹了
关于 STM32G0/G4/L4 HAL_IIC HAL_I2C_Mem_Read 函数读取M24C64存储芯片遇到的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于錯誤的定義了HAL_I2C_Mem_Read函數第四個形數,隨意的寫成了 8
HAL_I2C_Mem_Read( &hi2c1,IIC_ReadAddr, 10, 8, array_read, 10, 1000 );造成了,IIC在通訊過程中不正常的停止,函數并報出錯誤代碼“HAL_ERROR“,波形如下
將代碼改成如下方式
函數的第四個參數使用了官方庫的宏定義,官方庫宏定義如下
/** @defgroup I2C_MEMORY_ADDRESS_SIZE I2C Memory Address Size* @{*/ #define I2C_MEMADD_SIZE_8BIT (0x00000001U) #define I2C_MEMADD_SIZE_16BIT (0x00000002U)目前通訊正常
總結:由于隨意的參數定義,沒有嚴格使用官方的宏定義,造成查找問題忽略了這個點,所以以后要盡量使用官方宏定義,保證程序的可移植,并且減少很容易被忽略的錯誤
最后,要非常感謝 AlexXU(ST),沒有他的幫助,我很難發現這個問題
總結
以上是生活随笔為你收集整理的关于 STM32G0/G4/L4 HAL_IIC HAL_I2C_Mem_Read 函数读取M24C64存储芯片遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:工程师笔记|STM32F030在低
- 下一篇: STM32G071RB CubeMX A