大家好這裏我給大家來講解一下STM32CubeMx的I2C配置。什麼是I2C呢?他其實也是一種單片機與對外設備的通信方式,這個通信方式都是世界標準的,官方都定義好了,你只需要按照官方定義的特定形式去編寫代碼就好。我們可以通過兩種方式去和外部的帶有I2C協議的設備通信,一種方式是用IO口模擬I2C協議去做,還有一種方式就是利用單片機自帶的I2C外設接口去做。那麼這兩種方式哪種更好,毫無疑問使用內部的I2C外設接口會更快,更節約資源。下面我來告訴大家I2C如何配置。
一、準備工作
這裏我們要想配置I2C並驗證需要的準備工作如下:
1、MDK for ARM(KEIL5)或者IAR FOR ARM(這個是軟件必備開發平臺) (必須)
2、一塊STM32最小系統開發板最好有外接E2PROM(這個是驗證軟件的平臺 E2PROM是I2C總線接口) (必須)
3、這裏最好有一本關於STM32學習的書籍(這裏就不推薦了,網上有一大把)
二、具體的操作
1、工程建立
1)、在Pinout菜單欄下,I2C的選擇與配置。配置如圖
2)、在Configuration菜單欄下,點擊Connectivity下的I2C彈出配置界面,配置如圖
這裏使用的是默認選項。
3)、生成工程
點擊Project菜單欄選擇Generate code,工程生成完畢。
2、工程測試
以上說了I2C的配置,現在說怎麼使用。我們這裏使用的是24C02(E2pPROM)代碼驗證如下
#define ADDR_24Cxx_Write 0xA0
#define ADDR_24Cxx_Read 0xA1
uint8_t temp=0;
HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Write, 0, I2C_MEMADD_SIZE_8BIT,0x11,1,0xff);
HAL_I2C_Mem_Read(&hi2c1, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,&temp,1,0xff);
這裏就可以驗證寫入到24C02裏面的數據是否正確了!
3、總結
這樣I2C配置就完成了!~~~
如有什麼不懂聯繫加QQ羣:1063618791歡迎大家學習交流!
QQ:1320300083