I2CHAL库接口
一.非阻塞中断与DMA方式
1.Master模式
通过中断或DMA方式发送
HAL_I2C_Master_Transmit_IT(); 主设备发送数据给从设备
HAL_I2C_Master_Transmit_DMA(); 主设备发送数据给从设备
这两个函数为非阻塞版本,调用完后,会马上返回,如果要发送一个完整的数据,不然数据错误的话,最好实现同步
可以利用freertos的同步机制来实现数据的同步,例如信号量,事件组,这样我们发出数据以后数据正确,发送完成会调用回调函数。
通过中断或DMA方式接收
HAL_I2C_Master_Receive_IT
HAL_I2C_Master_Receive_DMA()
接收完成调用回调函数HAL_I2C_MasterRxCpltCallback();
2.Memory模式
主设备向从设备的指定内存地址写入数据
数据发送完成后后产生发送完成中断,会调用这个发送完成中断回调处理函数
HAL_I2C_MemTxCpltCallback()接收
读,从指定从设备寄存器读数据,从Memory中断或DMA接收完成后会触发中断接收完成回调函数,
HAL_I2C_MemRxCpltCallback();接收完成后的同步在回调函数处理
二.OLED显示屏驱动的移植
后续继续