【GD32F310开发板试用】使用六位半万用表测试ADC精度

首发极术社区。如对兆易创新GD32F310 MCU感兴趣,欢迎添加微信 aijishu2020 加入GD32技术讨论群。

项目地址

https://github.com/netube99/GD32F310G_START_ADC_TEST

感谢GD32为我提供了这块精致的GD32F310G-START开发板,经过周末两天的学习与开发测试,我已逐步熟悉该系列芯片的各项细节,希望在日后的工作和学习中能够更多的使用这些优质的国产芯片;

在这里也提出两点小小的建议,希望今后GD的开发板能够把板载调试器与目标芯片之间的电源线和信号线改跳线帽链接,这样可以断开板载调试器与供电,使目标芯片独立为一块最小系统,方便我可以使用其他调试器进行测试,同时电源分离后我可以对目标芯片进行低功耗测试而无需担心测量的电流数值被板载调试器所影响;

开始

申请开发板的时候我的开发目标是基于GD32F310设计一个全双工串口转单线半双工串口的串行舵机控制器,但是这个项目和我本职工作的一个项目比较类似,不方便开源通信部分的代码,所以临时改变文章的主题为测试ADC的精度,项目的所有代码已在github开源,希望文章的内容对朋友们的工作和学习有所帮助;

移植固件库

到GD32的官网下载文档三份:GD32F310数据手册/GD32F3x0用户手册/GD32F3x0固件库使用手册,最新版本固件库压缩包一份;固件库经过我的整理,提取了项目开发的基础文件并归类到三个文件夹中,作为基础空白的工程项目:

  • bsp:板级支持相关的代码文件,包含了各个外设模块的初始化函数/基本的驱动函数,需要自己实现;
  • user:实现用户的业务逻辑代码,同时也作为系统内核/固件库和用户代码的接口,基础的接口模板由固件库压缩包提供,删减后可以在其基础上进行开发,main函数就在该文件夹的文件中;
  • device:和芯片内核/外设相关的文件,由固件库压缩包提供,内核相关的文件需要删减,仅保留适合本项目开发环境的文件;

实现系统串口

系统串口使用的是USART1在PA2/PA3,由于GD32F310G-START并未提供串口转USB电路,所以需要使用杜邦线外接一个串口转USB的模块与电脑串口软件进行通信;

进入bsp文件夹,新建文件bsp_uart.c/.h,代码内容如下:

bsp_uart.h

bsp_uart.c

实现 ADC

ADC的模拟输入端口需要注意,PA0作为UserKey已经通过10k电阻下拉到地,PA2/PA3已作为串口TX/RX使用,它们都不太适合作为本应浮空的ADC通道,故选择PA1作为ADC的输入通道;在bsp文件夹内新建文件bsp_adc.c/.h文件,代码如下:

bsp_adc.h

bsp_adc.c

移植操作系统

GD32F310只有8k的RAM个人认为是不适合移植操作系统的,内存比较小,没办法写很复杂的线程代码,其实这个简单的测试项目也用不上多线程调度,我就是纯属吃饱了撑着了,把F303移植好的RT-Thread直接拖过来用,关于RT-Thread移植的教程在网络上有非常多,所以我就写一些大致流程细节我就不方便展开讲了;RT-Thread是一款非常优秀好用的国产RTOS,国产硬件配国产软件实在般配;

  1. 新建rtos文件夹,整理rt-thread nano源码包提供的文件,复制到rtos文件夹中;

  2. main.h内添加 #include “rtthread.h”

  3. 找到gd32f3x0_it.c,注释掉以下几个函数,使其失效

  4. 找到rtconfig.h,删掉MDK管理相关的宏,并添加如下代码

    来源:极术社区

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月10日
下一篇 2022年3月10日

相关推荐