/* 第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();ui
HAL_I2C_Mem_Read();spa
HAL_I2C_Mem_Read_IT();code
HAL_I2C_Mem_Read_DMA();blog
HAL_I2C_Mem_Write_DMA();it
HAL_I2C_Master_Receive();// STM32 主機接收,不須要用到寄存器地址io
HAL_I2C_Master_Receive_IT();//中斷IIC接收ast
HAL_I2C_Master_Receive_DMA();// DMA 方式的IIC接收class
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個字節,跟其餘函數的調用,跟這個兩個例子相似