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状态