搜索
发新帖本帖赏金 100.00元(功能说明)我要提问
返回列表

[研电赛技术支持] 四大套路——带你玩转GD32的RTThread设备ADC移植

[复制链接]
59343|2
手机看帖
扫描二维码
随时随地手机跟帖
yanzhengxin1|  楼主 | 2021-10-2 22:13 | 显示全部楼层 |阅读模式
@21小跑堂 #申请原创#
RTThread上设备ADC移植与实践
接前面RTThread上设备IIC和SPI的移植与实践,ADC也是项目中常用的功能之一,要说Cotex系列MCU没有ADC功能基本不可能,一般只是说有多少路ADC,ADC多少位采样,以及采样频率,转换时间等等方面的性能参数,所以关于ADC相关的基础知识大概百度一下也能清楚,这里就不详细说了,毕竟ADC技术以及用了许多年也是相当的成熟了。言归正传作为本次RTThread上设备ADC移植的核心芯片GD32E230C8T6,CotexM23核,ADC是10路,采样位数是12位。10路ADC分布分布与GPIOA和GPIOB上,后续配置映射中也是可以看到的。
[size=16.0000pt]1、RTThread设备ADC移植“套路”1.1、套路一
工程文件,四个文件drv_xxx.c、drv_xxx.h、xxx.c、xxx.h,此篇为ADC,因此xxx=ADC,其中drv_ADC.c和drv_ADC.h为与MCU硬件相关的驱动C文件以及头文件,ADC.c和ADC.h为RTThread内核相关的驱动C文件以及头文件。详细工程文件如下图所示
1.png 2.png 3.png
1.2、套路二
工程文件内容,drv_ADC.c文件主要包含了设备ADC的初始化以及GPIO作为ADC引脚的相关设置
4.png
GPIO引脚作为ADC功能的相关配置,其中ADC通道也进行了与STM32的MCU类似的分组,分为规则组和外部组,因此具体的怎样配置也是可以参考STM32的相关配置和说明。但是库还是用的GD自己的库当然这里还是逃不开STM32的影子。这里就不在啰嗦了,国产总需要一个过程,需要时间来修炼完善自己。总有一天会活成自己的样子,不用在再别人的影子下面行走和遭人指指点点。闲话不续,接着讲套路,呵呵........
5.png
看完配置和初始化,接下来就是出结果的时候了,ADC少不了的关键环节ADC转换,这里直接转换出读寄存器直接得到想要的值。这就是ADC转换的终极所在,就是模拟转换数字将连续的量转换为离散的值。
6.png
1.3、套路三
讲完了上面的套路二,还有一个很关键的承上启下的关键环节,这里归结为套路三,ADC硬件初始化,细看好像是硬件ADC初始化,其实里面有个关键内容那就是“注册登记”,将自己加载到RTThread内核的“设备名录”中去,这样就能让用户发现,方便用户后期进行“设备采购”,这里只是一个比喻,关键还是看内容,register函数依然贯穿每一个细节,要想被发现被使用你就必须按照RTThread的套路来安排,要不然没有谁会认识你,所以总归一句话,千万不要忘记注册。
7.png
1.4、套路四
套路二、三是完整的一个与MCUADC硬件密切关联的东西,下面的这个则是实现统一接口的RTThread的内核中ADC标准,在RTThread的用户中使用的都是rt开头的接口,因为有了这一层相关标准和后续的映射机制,因此这一部分没有任何需要改动的地方,因为这一切都是源自RTThread,具体的ADC相关功能内容有adc读,使能,禁用,注册等相关内容。
8.png
[size=16.0000pt]2、GD32E230上的ADC实践2.1、注册
完成代码的移植后,通过list_device指令,发现了adc相关设备,同pin设备一样的type类型,通过下图的验证,发现adc设备已经成功注册上RTThread中了。
9.png
2.2、ADC测试例程
结合Demo板ADC接口为PA2,ADCchannel为2通道,根据流程查找设备->使能ADC通道->读取ADC转换值->关闭ADC通道->导出到msh命令列表中。如此便完成了ADC测试例程。
10.png
小试牛刀,发现adc_vol已经导入到msh列表中
11.png
2.3、测试
通过调整Demo 板上的可调电阻阻值实现不同ADC采样值得输出,三次调整,三次输出。
12.png
2.4、实践展示
除了打印,当然还有显示,下图是demo板上显示屏显示的内容,以上内容仅供参考,如有不完善处,还请见谅以及提出意见,谢谢。
13.png
附上测试视频(对可调电阻进行调整后看到ADC曲线变化)和代码,仅供参考。


GD32E23x_Demo_RTT_ADC.rar

2.23 MB, 下载次数: 8

测试视频.rar

3.68 MB, 下载次数: 0

使用特权

评论回复

打赏榜单

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

weifeng90| | 2021-10-7 12:34 | 显示全部楼层
不错,感谢楼主分享。

使用特权

评论回复
flytianya2010| | 2021-10-7 17:05 | 显示全部楼层
感谢楼主分享,学习了,现在缺板子验证。

使用特权

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

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥265.00
  • 3 yanzhengxin1 得到打赏 ¥200.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 zhangjiantao 得到打赏 ¥50.00
  • 7 小叶三千 得到打赏 ¥50.00
  • 8 cjseng 得到打赏 ¥50.00
  • 9 改名了 得到打赏 ¥30.00
  • 10 HXM1593 得到打赏 ¥15.00
在线客服 快速回复 返回顶部 返回列表