发新帖本帖赏金 200.00元(功能说明)我要提问
返回列表
打印

RTThread 上设备IIC驱动移植与实践

[复制链接]
16479|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
@21小跑堂 #申请原创#
RTThread 上设备IIC驱动移植与实践
趟过前面RTThread在GD32E230CotexM23上的坑之后,继续进行了RTThread端设备驱动的验证测试,IIC作为很多设备之间通信的基础通信方式,起使用程度和普及程度基本也算是很多MCU的标配,即使没有硬件IIC,用软件对GPIO口也可以模拟出软件方面的IIC,自然GD32E230作为ARMv8架构的CotexM23系列的芯片,硬件IIC还是有的,而且SDK里面也留了完整的例程,可以根据实际需求去使用。当然本文不是想使用裸机上的IIC驱动,而是RTThread RTOS上的IIC驱动,这里我们还是先来看看RTThread上外设驱动的结构,参考的官方文档。

其他的细节还是参考官方文档,以下是官方链接,
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/device
1, RTThread移植IIC到CotexM23中
工程文件
芯片软件IIC、硬件IIC选取

芯片硬件端使用函数

RTThread端驱动层

IIC数据传输里面比较关键的函数

处理好上面的相关内容后,还有一些宏的使用,以及硬件IIC使用的是那些IO口,然后跟裸机一样的情形,需要回到对硬件的一些初始化操作。要在RTThread上用上驱动框架的东西,实际上就是要中间使用一个过渡层,原来操作硬件使用直接操作寄存器,RTThread上处理直接操作寄存器,还需要对相应的读写等函数进行封装,供应用层直接使用,所以实际上较裸机程序多了很多内容,但是这个好处也是有的,可以将系统和硬件进行隔离。移植完上面开始进行EEPROM的操作实践
2, RTThread IIC驱动EEPROM
多的不用说,看写EEPROM寄存器

接下来看看读寄存器

读写EEPROM内容

这里有一些细节说明,根据IIC的操作时序,给寄存器写值之前,首先需要写入寄存器的地址,因此msg.buf 中需要包含寄存器的地址,和后续写入的值,如要写入EEPROM前面0-15寄存器的值,定义的msg.buf的长度为17个字节,读的过程直接将写地址和读寄存器分开写,这样更清晰,主要是根据IIC的操作时序,多字节读写等相关内容,具体的也可以百度查找。

3, RTThread IIC驱动EEPROM实践2
同样的首先看读写寄存器函数




读写EEPROM内容

运行结果如下图

这两者之间只是函数使用的不同,然后操作的细节可能不一样,但是还是前面一种更符合RTThread系统上使用的IIC驱动。
4, RTThread IIC总结
完成以上的移植和EEPROM上面的实践,下一步运用到实际项目中IIC驱动气压芯片,由于芯片、传感器紧张,打算使用多种气压传感器,以作备胎,呵呵!**纯属个人意见,如有不妥之处请指正,谢谢!**最后附上此次移植、实践工程代码。 GD32E23x_Demo_RTT_IIC.rar (1.5 MB)


使用特权

评论回复

打赏榜单

21小跑堂 打赏了 200.00 元 2021-09-15
理由:恭喜通过原创文章审核!请多多加油哦!

沙发
daichaodai| | 2021-9-16 08:12 | 只看该作者
感谢分享,下载看看。

使用特权

评论回复
板凳
凌之沙| | 2021-9-16 13:52 | 只看该作者
优秀

使用特权

评论回复
地板
yangxiaor520| | 2021-9-17 07:41 | 只看该作者
不错,学习一下。

使用特权

评论回复
5
海洋无限| | 2021-9-24 16:05 | 只看该作者
RT上硬件I2C移植稳定性怎么样?

使用特权

评论回复
6
pixhw| | 2021-10-2 17:58 | 只看该作者
bsp不支持吗   

使用特权

评论回复
7
sdlls| | 2021-10-2 17:58 | 只看该作者
直接使用 RTThread studio吗   

使用特权

评论回复
8
febgxu| | 2021-10-2 17:58 | 只看该作者
GD32E230性能怎么样   

使用特权

评论回复
9
xiaoyaodz| | 2021-10-2 17:58 | 只看该作者
设备IIC驱动移植难吗   

使用特权

评论回复
10
fentianyou| | 2021-10-2 17:59 | 只看该作者
这个不是官网提供的吗

使用特权

评论回复
11
selongli| | 2021-10-2 17:59 | 只看该作者
IIC驱动直接加载吗   

使用特权

评论回复
12
minzisc| | 2021-10-2 17:59 | 只看该作者
没有iic应用资料吗  

使用特权

评论回复
13
lzmm| | 2021-10-2 17:59 | 只看该作者
RTThread确实可以。   

使用特权

评论回复
14
hudi008| | 2021-10-2 17:59 | 只看该作者
移植与实践复杂吗   

使用特权

评论回复
15
kkzz| | 2021-10-2 17:59 | 只看该作者
RTThread有教程吗  

使用特权

评论回复
16
yanzhengxin1|  楼主 | 2021-10-2 20:55 | 只看该作者
官网教程呀

使用特权

评论回复
发新帖 本帖赏金 200.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

140

帖子

3

粉丝