STM32 HAL庫 IIC 協議庫函數


/* 第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個字節,跟其他函數的調用,跟這個兩個例子類似


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM