恩智浦FRDM-MCXA153 RT-Thread开发实战(六):I2C总线开发与应用

描述

  工程创建 目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153开发板BSP,需要从gitee下载最新的主线,通过scons命令创建工程。下载好主线源码后,在rt-threadsp xpmcxmcxafrdm-mcxa153 目录下打开scons环境,配置IIC驱动和SSD1306 OLED。 

I2C配置 

恩智浦FRDM-MCXA153开发板板载的mikroBUS socket预留一个IIC接口,具体可以从针脚图看到下图红框处的针脚。

IIC

NXP MCXA153引入了一个Flexcomm概念,每个Flexcomm接口可通过软件选择作为USART、SPI或I2C接口。此处只需要在menuconfig中选择I2C0即可。

IIC

1. 因为FRDM-MCXA153的BSP目前只有pin和Uart的驱动,需要增加drv_i2c.c文件,直接从已有的BSP(如N947)拷贝过来,同时修改baud、clock_attach_id、clock_div_name初始化值:

IIC

2. 修改 pin_mux.c 文件中的 BOARD_InitPins 函数,添加I2C0的复位和引脚初始化代码:

IIC

同时加上I2C0的SDA SCL针脚初始化代码:

IIC

IIC

IIC

SSD1306 OLED配置

在menuconfig中选择enable SSD1306,并且设置好I2C bus name,I2C的地址默认是0x3c无需修改:

IIC

上述内容设置好之后,选择保存。分别执行下述2个命令:

IIC

打开生成的Keil工程并编译程序:

IIC

  I2C测试

下载固件到FRDM-MCXA153开发板并重置系统

在串口终端中,应该看到类似以下的输出:

IIC

1. 使用 list device命令查看已注册的设备:

IIC

2. 运行SSD1306 OLED演示程序:

IIC

如果一切正常,在连接的OLED显示屏上可以看到RT-Thread的logo:

IIC

  I2C驱动实现细节 以下是 drv_i2c.c 文件的关键部分: IIC

IIC

IIC

IIC

IIC

这个驱动实现了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社区论坛上留言。 让我们共同推动技术进步,共创美好未来!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分