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显示屏驱动的移植

后续继续