/* 第1個參數為I2C操作句柄
第2個參數為從機設備地址
第3個參數為從機寄存器地址
第4個參數為從機寄存器地址長度
第5個參數為發送的數據的起始地址
第6個參數為傳輸數據的大小
第7個參數為操作超時時間 */
HAL_I2C_Mem_Write(&hi2c2,salve_add,0,0,PA_BUFF,sizeof(PA_BUFF),0x10);
HAL_I2C_Mem_Write_IT();
HAL_I2C_Mem_Read();
HAL_I2C_Mem_Read_IT();
HAL_I2C_Mem_Read_DMA();
HAL_I2C_Mem_Write_DMA();
HAL_I2C_Master_Receive();// STM32 主機接收,不需要用到寄存器地址
HAL_I2C_Master_Receive_IT();//中斷IIC接收
HAL_I2C_Master_Receive_DMA();// DMA 方式的IIC接收
HAL_I2C_Master_Transmit_IT(); //中斷IIC發送
HAL_I2C_Master_Transmit_DMA(); // DMA 方式的IIC發送
HAL_I2C_Master_Transmit(&hi2c2,salve_add,PA_BUFF,sizeof(PA_BUFF),0x10); //STM32 主機發送
HAL_I2C_Slave_Receive();// STM32 從機機接收,不需要用到寄存器地址
HAL_I2C_Slave_Transmit();// STM32 從機機發送,不需要用到寄存器地址
HAL_I2C_Slave_Receive_IT();
HAL_I2C_Slave_Receive_DMA();
HAL_I2C_Slave_Transmit_IT();
HAL_I2C_Slave_Transmit_DMA();
舉個調用 HAL_I2C_Mem_Write()函數讀取16個字節的使用例子
HAL_I2C_Mem_Read(&hi2c2,U9_Save_Read_Add,ADC_Result_Add,I2C_MEMADD_SIZE_8BIT,Read_buff,2,0xff);
再舉一個 HAL_I2C_Mem_Read( ) 函數寫16個字節的使用例子
uint8_t Configuration_config[2]={0x09,0xc0};
//設置U9的Configuration寄存器為 0x09 0xc0 HAL_I2C_Mem_Write(&hi2c2,U9_Save_Write_Add,ADC_Configuration_Add,I2C_MEMADD_SIZE_8BIT,Configuration_config,2,0xff);
至於讀寫8個字節,跟其他函數的調用,跟這個兩個例子類似