i2c_polling 使用示例

例程路径: ls_sdk\examples\peripheral\i2c\i2c_polling

本示例主要用于演示如何使用i2c polling相关接口进行数据收发。

一、程序基本配置:

1.1 宏定义说明

大多数宏定义与i2c_it示例一致。新增的宏定义有:

/*polling测试时一次收/发的timeout时间,单位ms*/
#define I2C_POLLING_TIMEOUT_MS 1000

1.2 其他配置

该例程使用到的全局变量与i2c_it示例一致

二、程序运行流程说明

2.1 初始化

初始化流程与i2c_it示例一致

2.2 运行流程

i2c_polling测试的流程基本和i2c_it基本一致,有区别的地方是,主机和从机在调用完相应的收发函数后,需要判断返回值

三、操作步骤及结果:

3.1 操作步骤

参考i2c_it示例,操作步骤完全一致

3.2 测试结果

和i2c_it一样,主从机数据收发反复进行,无限循环,主从机LED灯会持续闪烁

四、其他

  • 驱动鲁棒性验证选项,通过SIMU_IRQ_EN进行开关,与i2c_it一致

  • i2c slave polling接口,由于有timeout限制,因此在调用之后需要在单位时间内收到主机发送的addr并完成预设的数据收发流程。在demo里,由于实际操作有先后顺序,因此从机端会循环调用相关的读写接口,即如果触发了timeout会继续走下一轮,直到完成预定的数据收发。这种处理仅适用于测试,在实际应用场景里,需要主从机在收发数据的时间点上做一些同步处理,确保主机发addr时,从机处于ready状态