[研电赛技术支持] 四大套路——带你玩转GD32的RTThread设备ADC移植
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.2、套路二
工程文件内容,drv_ADC.c文件主要包含了设备ADC的初始化以及GPIO作为ADC引脚的相关设置
GPIO引脚作为ADC功能的相关配置,其中ADC通道也进行了与STM32的MCU类似的分组,分为规则组和外部组,因此具体的怎样配置也是可以参考STM32的相关配置和说明。但是库还是用的GD自己的库当然这里还是逃不开STM32的影子。这里就不在啰嗦了,国产总需要一个过程,需要时间来修炼完善自己。总有一天会活成自己的样子,不用在再别人的影子下面行走和遭人指指点点。闲话不续,接着讲套路,呵呵........
看完配置和初始化,接下来就是出结果的时候了,ADC少不了的关键环节ADC转换,这里直接转换出读寄存器直接得到想要的值。这就是ADC转换的终极所在,就是模拟转换数字将连续的量转换为离散的值。
1.3、套路三
讲完了上面的套路二,还有一个很关键的承上启下的关键环节,这里归结为套路三,ADC硬件初始化,细看好像是硬件ADC初始化,其实里面有个关键内容那就是“注册登记”,将自己加载到RTThread内核的“设备名录”中去,这样就能让用户发现,方便用户后期进行“设备采购”,这里只是一个比喻,关键还是看内容,register函数依然贯穿每一个细节,要想被发现被使用你就必须按照RTThread的套路来安排,要不然没有谁会认识你,所以总归一句话,千万不要忘记注册。
1.4、套路四
套路二、三是完整的一个与MCUADC硬件密切关联的东西,下面的这个则是实现统一接口的RTThread的内核中ADC标准,在RTThread的用户中使用的都是rt开头的接口,因为有了这一层相关标准和后续的映射机制,因此这一部分没有任何需要改动的地方,因为这一切都是源自RTThread,具体的ADC相关功能内容有adc读,使能,禁用,注册等相关内容。
[size=16.0000pt]2、GD32E230上的ADC实践2.1、注册
完成代码的移植后,通过list_device指令,发现了adc相关设备,同pin设备一样的type类型,通过下图的验证,发现adc设备已经成功注册上RTThread中了。
2.2、ADC测试例程
结合Demo板ADC接口为PA2,ADCchannel为2通道,根据流程查找设备->使能ADC通道->读取ADC转换值->关闭ADC通道->导出到msh命令列表中。如此便完成了ADC测试例程。
小试牛刀,发现adc_vol已经导入到msh列表中
2.3、测试
通过调整Demo 板上的可调电阻阻值实现不同ADC采样值得输出,三次调整,三次输出。
2.4、实践展示
除了打印,当然还有显示,下图是demo板上显示屏显示的内容,以上内容仅供参考,如有不完善处,还请见谅以及提出意见,谢谢。
附上测试视频(对可调电阻进行调整后看到ADC曲线变化)和代码,仅供参考。
此文章已获得原创/原创奖标签,著作权归21ic所有,未经允许禁止转载。
GD32E23x_Demo_RTT_ADC.rar
2.23 MB, 下载次数: 3
测试视频.rar
3.68 MB, 下载次数: 0
---------------------
作者:yanzhengxin1
链接:https://bbs.21ic.com/icview-3168240-1-1.html
来源:21ic.com
此文章来自于21ic网站,著作权归21ic所有,未经允许禁止转载。
[研电赛技术支持] 四大套路——带你玩转GD32的RTThread设备ADC移植相关推荐
- 【2022研电赛】技术赛华南区一等奖:基于改进GoogLeNet的瘢痕色泽和血管分布评估系统
本文为2022年第十七届中国研究生设计大赛技术赛道华南赛区一等奖作品介绍,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:广西科技大学 参赛 ...
- 2022年第十七届研电赛报名|安谋科技(Arm China)命题:基于特定开发平台的理性智能体设计
"兆易创新杯"第十七届中国研究生电子设计竞赛(以下简称"研电赛")现已正式开赛,企业命题已在官网发布,现官网已启动报名啦~ 安谋科技作为研电赛多年的合作单位及& ...
- 【2022研电赛】安谋科技企业命题三等奖:基于自主跟随的无人结账一体化购物车
本文为2022年第十七届中国研究生电子设计竞赛安谋科技企业命题三等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 基于自主跟随的无人结账一体化购物车 ...
- 第15届研电赛圆满落幕,RT-Thread企业专项奖花落谁家?
第十五届中国研究生电子设计竞赛全国总决赛(简称"研电赛")暨颁奖典礼日前在南京信息工程大学圆满落幕.本届研电赛,共有402支队伍角逐进入总决赛,共有3支队伍夺得了RT-Thread ...
- 2020研电赛开始,Xilinx万元大奖等你来!看AI+MPsoc平台如何选?
创意有你,未来可期! 第十五届中国研究生电子设计竞赛 Xilinx赛道 开赛了! 赛灵思万元专项大奖为大赛助力! 米尔MYD-CZU3EG入选官方指定开发平台 顶尖平台, 专业培训,商业孵化, 还 ...
- 【2022研电赛】商业计划书赛道华南区二等奖:基于机器视觉的智能驾驶辅助系统
本文为2022年第十七届中国研究生电子设计竞赛商业计划赛道华南赛区二等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:广西科技大 ...
- 2021研电赛获奖作品合集
2021"兆易创新杯"第十六届研究生电子设计竞赛(以下简称"研电赛")已经结束,在比赛中出现了很多优秀作品,特作为整理 1.Arm命题:基于EAIDK-310的 ...
- 【2022研电赛】兆易创新杯全国二等奖:自动驾驶汽车路面目标智能检测系统
本文为2022年第十七届中国研究生电子设计竞赛兆易创新杯全国二等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:Guangxi ...
- 【2022研电赛】商业计划书赛道上海市一等奖:基于多目标排序预测控制的SL-qZSI光伏储能系统
本文为2022年第十七届中国研究生电子设计竞赛商业计划赛道上海赛区一等奖作品兼全国三等奖分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位 ...
最新文章
- 作者:张广艳,男,博士,清华大学计算机科学与技术系副教授,中国计算机学会会员。...
- 《HTML5+JavaScript动画基础》——2.4 JavaScript对象
- 点击按钮重新加载ajax,Jquery AJAX点击链接,然后重新加载页面
- 高性能MySQL(第2版)中文版pdf
- 可重启的活动目录域服务
- golang ide 环境搭建_golang环境搭建
- 计算机网络工程教程,计算机网络工程实用教程ppt课件
- vpa函数python_Biopython序列比对
- 开源云真机平台-Sonic应用实践
- 中图分类号计算机 tp,中图分类号(TP)
- 快手分享显示服务器找不到了,快手没有网络怎么回事
- 微信投票平台防止刷票的方法和原理随笔
- java8中数据类型_Java 8中 基本数据类型
- 2021 年度程序员收入报告:字节跳动排名全球第 5!
- 清除linux系统盘空间,linux磁盘空间不足怎么办,磁盘清理方法
- 重装 UOS Deepin V20 后必安装软件(个人习惯)
- RMAN Encrypted Backups
- EasyUI 系列之 combobox 默认选中第一个 添加请选择选项
- 2018ACM杰出科学家名单公布,12 位华人学者上榜
- 条码软件里如何调整二维码的角度