1、I2C輪詢方式中的疑問(wèn):
/* USER CODE BEGIN 2 */
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 0x00, 3, tx, 3, 0xffff);
HAL_Delay(50);
HAL_I2C_Mem_Read(&hi2c1, 0xA1, 0x00, 3, rx, 3, 0xffff);
HAL_Delay(50);
/* USER CODE END 2 */
在讀的函數(shù)中,從設(shè)備的地址0xA1,能成功讀取到EEPROM中的值,老師用的0xA0,也能讀取到,為什么兩個(gè)都能成功?
2、I2C中斷方式編程心得:
①I2C模式寫和讀之后,一定要延時(shí),等待從設(shè)備處理數(shù)據(jù),否則不會(huì)成功。
②I2C中斷API函數(shù)參數(shù)為是I2C_MEMADD_SIZE_16BIT,不要寫錯(cuò)了。
③不能在讀寫回調(diào)函數(shù)里調(diào)用中斷讀或者寫函數(shù)
|