接口/总线/驱动
上个月提到的RT-Thread与NXP共同举办的 NXP FRDM-MCXN947 RT-Thread测评活动,目前测评已经完成,并且举办方已经将所有优秀的活动作品总结成了《恩智浦FRDM-MCX N947开发实践指南》。该电子书包含了基于FRDM-MCXN947开发板上所有支持的BSP外设的优秀用例,下面小编就抛砖引玉,以I2C部分已经学习和讲解。
本文使用MDK-ARM 5.39软件进行开发。使用RT-Thread ENV工具进行环境配置,方便地配置和管理RT-Thread工程的环境参数。
KeilMDK安装
RT-ThreadENV工具安装
在RT-Thread的丰富组件库中,I2C驱动软件扮演着至关重要的角色。它不仅负责上承应用层的多样需求,还要下接硬件层的精确操作。打开RT-Thread env工具,cd进入工程目录,通过menuconfig配置项目。
硬件层面上,I2C总线仅由两根线构成——数据线(SDA)和时钟线(SCL)。它们的简单结构使得I2C成为低成本和空间受限环境下的理想选择。本文硬件I2C采用引脚P0_25(SCL)和P0_24(SDA)。软件驱动层面上,RT-Thread提供了一套完整的I2C驱动框架,支持多种微控制器平台。这些特性使得I2C驱动能够满足各种复杂应用场景的需求。本文软件模拟I2C采用引脚P0_4(SCL)和P0_5(SDA)。硬件I2C引脚位于J2外侧的第5和第7引脚,软件I2C位于J9内测的第8和第9引脚。引脚图参考如下,注意不要接错!
软件模拟I2C
进入env工具修改设备驱动如下:
增加ssd1306的驱动用于测试i2c软件模拟,通过env工具增加ssd1306软件包:
添加drv_i2c驱动,注册i2c总线:
保存退出后更新软件包并重新生成工程:
keil编译下载:
输入测试指令:ssd1306_TestAll
I2C(软件模拟)测试完成。
硬件I2C
在env软件配置的基础上关闭软件模拟I2C
其中修改不变,通过FC1映射i2c1,设置对应引脚电气属性:
编译下载:
IIC(硬件)测试完成之后,我们得出结论:
通过测试发现使用硬件I2C来刷新屏幕时,感官速度相较于其他方式会快一些。此外,我们还注意到硬件I2C刷新屏幕可以显著提高感官速度、稳定性和可靠性。
在实际应用中,我们可以根据具体需求调整I2C总线的通信速率和配置参数,以达到最佳的屏幕刷新效果。
全部0条评论
快来发表一下你的评论吧 !