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();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個字節,跟其餘函數的調用,跟這個兩個例子相似

相關文章
相關標籤/搜索