工程创建 目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153开发板BSP,需要从gitee下载最新的主线,通过scons命令创建工程。下载好主线源码后,在rt-threadsp xpmcxmcxafrdm-mcxa153 目录下打开scons环境,配置IIC驱动和SSD1306 OLED。
I2C配置
恩智浦FRDM-MCXA153开发板板载的mikroBUS socket预留一个IIC接口,具体可以从针脚图看到下图红框处的针脚。
NXP MCXA153引入了一个Flexcomm概念,每个Flexcomm接口可通过软件选择作为USART、SPI或I2C接口。此处只需要在menuconfig中选择I2C0即可。
1. 因为FRDM-MCXA153的BSP目前只有pin和Uart的驱动,需要增加drv_i2c.c文件,直接从已有的BSP(如N947)拷贝过来,同时修改baud、clock_attach_id、clock_div_name初始化值:
2. 修改 pin_mux.c 文件中的 BOARD_InitPins 函数,添加I2C0的复位和引脚初始化代码:
同时加上I2C0的SDA SCL针脚初始化代码:
SSD1306 OLED配置
在menuconfig中选择enable SSD1306,并且设置好I2C bus name,I2C的地址默认是0x3c无需修改:
上述内容设置好之后,选择保存。分别执行下述2个命令:
打开生成的Keil工程并编译程序:
I2C测试
下载固件到FRDM-MCXA153开发板并重置系统
在串口终端中,应该看到类似以下的输出:
1. 使用 list device命令查看已注册的设备:
2. 运行SSD1306 OLED演示程序:
如果一切正常,在连接的OLED显示屏上可以看到RT-Thread的logo:
I2C驱动实现细节 以下是 drv_i2c.c 文件的关键部分:
这个驱动实现了I2C主机传输功能,支持读写操作,并使用了NXP SDK提供的LPI2C驱动。
结论
通过以上步骤,我们成功在RT-Thread MCXA153上实现了I2C驱动,并验证了其功能。这为进一步开发基于I2C的应用(如OLED显示)奠定了基础。在实际应用中,可根据需要来调整I2C的配置参数,如波特率、地址等,以适应不同的I2C设备。
希望这个指南能够帮助您在RT-Thread MCXA153上成功实现I2C应用!
参考资料 1. RT-Thread文档: https://www.rt-thread.org/document/site/ 2. NXP MCXA153参考手册 3. RT-Thread I2C设备驱动文档
通过近几期的深度介绍,我们一同领略了MCXA153 RTT的强大功能与广泛应用潜力!
MCXA153 RTT技术盛宴来袭,精彩不容错过!
MCXA153 RTT技术盛宴-探索GPIO的无限可能
深度探索恩智浦FRDM-MCXA153上的RT-Thread实践指南-玩转ADC
快跟上!恩智浦FRDM-MCXA153 RT-Thread实践指南4_FLASH
恩智浦FRDM-MCXA153 RT-Thread实践指南5-SPI
相信您已对如何在RT-Thread MCXA153上开发应用有了更深入的理解,如有任何疑问或建议,都欢迎随时在RT-Thread社区论坛上留言。 让我们共同推动技术进步,共创美好未来!
全部0条评论
快来发表一下你的评论吧 !