3479|1

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【GD32L233C-START评测】二 开发板功能评测 [复制链接]

 

       本节测试下GD32L233C-START评估板的单片机外设功能,测试步骤是写一个样例工程,通过串口交互,下指令选择不同的功能进行测试,以下是本次重点评测的9部分功能:

 

1,串口:

       串口作为单片机与外界通信的一种简单易用的接口,可用于跟上位机交互,打印日志,或者跟其他设备通信。

初始化部分:

 

       首先是端口配置,但是这个RCU是什么?就不玩GD了,发现了新名词,于是翻下手册,没有找到名词解释,在用户手册第4章发现:复位和时钟单元(RCU),原来是这个的简写,所以首先是配置端口时钟;

接着是AF:复用功能,看数据手册表2-7里面写7是引脚PA9,PA10选择UASRT0功能;

接着是GPIO配置,这里分成了模式和输出操作设置,跟ST的通过一个结构体来配置是有区别的;

然后是串口的配置,串口通信我们最关心的几个参数:波特率,校验,数据为,停止位,接收和发送使能,使能串口;

最后是中断配置及中断使能,因为我使用了中断接收数据功能。

 

中断比较简单,我只接收一个数据,读取后清0

测试效果:复位输入1后,开始不停的打印数据,串口接收到的数据也会打印出来。

 

2,LED

       初始化部分:

 

       GPIO的初始化比较简单:时钟配置,引进模式及输出配置,最后初始我全置0,把灯熄灭;

       这里又碰到几个新的名词:GPIO_BC,GPIO_BOP,GPIO_TG

测试效果:

       复位后串口发送2选择LED功能测试,会看到4个灯在流水跑。

3,按键

       初始化部分:

 

按键初始化比较简单,把LED功能的GPIO配置输出改成输入即可,要注意找到按键对应的GPIO及输入高低电平状态,这里初始状态是低,按键按下是高。

测试效果:输入3后,按键按下会看到串口打印get key,并且4个LED会同时亮起

 

4,PWM

       初始化部分:

 

PWM作为定时器的一个功能,应用还是比较广泛的,比如功率控制:LED调光,电机速度控制等等,

       初始化主要关注几个参数:

定时器的技术频率,这里选择的是主时钟48M的48分频,也就是1M的计数频率;

计数周期:这里给的是10000,也就是10K的PWM频率;

占空比:还有一个是脉冲宽度时间,也就是周期内高/低电平的时间,通过这个调整高低电平时间来达到改变功率的目的。

 

测试效果:

复位后输入4进入PWM功能,会看到LED3和LED4交替的呼吸灯效果

5,RTC

       初始化部分:

 

首先是打开时钟:电源和备份时钟

RTC分频配置:这里有两个时钟源选择需要注意,一个是内置的32K时钟,一个是外置的32K时钟,内置的可能会误差大些,时间精度要求不高可以使用,节省外部晶振成本。

使能备份寄存器写功能:使能这个原因是,配置RTC后在备份寄存器写了一个标志,下次重启只有备份域的电源没有断(比如:后备电池),RTC的配置参数无需再次初始化,时间会一直走的。

RTC配置:这里读了备份寄存器标志,如果不在就配置RTC的时间和闹钟时间及中断。

闹钟中断使能:如果需要闹钟事件需要使能闹钟中断线及开启闹钟中断。

 

测试效果:复位设置时间跑了6个小时后,跟电脑时间比对:看到原本差1秒的,后面同步了,说明RTC时间快了一点点,误差应该在1秒内;闹钟到设定时间也会产生中断。

 

 

 

 

6,ADC+DMA

       初始化部分:

 

初始化配置前面部分跟GPIO配置一样,时钟配置IO配置,这里是设置为模拟输入,然后ADC的模式配置,通道配置这里用了4个通道,

DMA配置:这里想顺便测试下DMA功能,使用DMA的好处是节省CPU的资源,而ADC需要连续转换,通过DMA将结果搬移到内存,这样读取AD值就是读一个变量一样简单;

 

这里需要注意配置DMA的搬移方向是外设到内存,数据位宽对齐,及搬移数量等参数。

测试效果:复位后选择6,可以看到通道AD值打印转换后实际电压值,保留一位小数;这里还有点小问题,就是第一通道的值会影响后面234通道的值,2通道又会影响34通道的值,单单第4通道有值却是正常,不知道哪里没配置对,时间问题后面在继续查找。

 

7,USB

       初始化部分:

 

初始化首先是时钟,然后是配置USB设备功能,使能中断,连接USB,接着是死等USB的连接状态,连上了就进入主函数执行功能;

       这里需要注意一点是:如果是用官方的例程工程直接下载电脑是可以识别的,如果是移植官方例程到你的工程,那么主频时钟的配置就需要改下,不然就会跟我一样为什么我的USB不能识别,因为USB工作需要的是48M的主频,而我们工程默认配置的是64M的,所以USB跑不正常,不能被电脑识别。可以找例程工程system_gd32l23x.c文件直接替换,或者自己添加配置主频改成48M部分功能,USB方可运行正常。

测试效果:复位后选择7后,由于没有多余USB线的,所以需要把串口上的USB线拔出插到USB设备口上,就能看到,电脑识别出USB转串口设备,测试USB发送什么,单片机会把接收到的数据返回到USB端。

 

      

 

8,外部中断

       初始化部分:

 

中断的初始化比按键输入的初始化多了一个中断的配置,需要注意的是配置触发的边缘,板子默认是下拉,所以这里配置为上升沿触发,当按键按下接通3.3V给个上升沿产生中断。

 

测试效果:

 

9看门狗

       初始化部分:

 

看门狗的初始化比较简单,使能内置低频时钟,配置计数时间,开始倒计时,计数到0则发生复位,这里配置为3秒不喂狗则复位,程序通过按下按键来喂狗。

测试效果:

 

复位进入9后:可以看到不按按键,则3秒钟发生一次复位,程序读取复位源,如果是看门狗复位则直接进入9功能,不需要重新选择功能。

 

按了按键喂狗则复位延时发生复位。

 

 

 

 

 

总结:

       1:本次评测通过串口输入指令选择测试板子对应的功能,初始化之后进入对应的功能进行测试,目的是尽量通过一份代码测试板子上所含盖的功能,当然我只是简单测试下对应的一种功能,GD官方提供的样例里面每个外设都提供了很多例子,时间关心我只测试其中一种。

2:固件库里面的很多接口过于精简,例如:“GPIO_BC”,“GPIO_BOP”等不去翻手册,看寄存器根本不知道是干嘛用的,不能够做到看名知意,只能看手册,看说明熟悉固件库体系才能去运用他,增加学习成本。

3:所有的功能测试都是从GD给的样例里面搬过来的,我不生产代码,我只是代码搬运工,板子功能评测还是比较顺利的,有问题的点是ADC的DMA功能,4通道采集如果给1通道的电压,后面234通道都会有数据,也就是前面通道的数据会串扰后面通道的,单独给4通道电压是正常的,不知道哪里参数配置不对,花挺多时间没找到原因,只能有时间在继续找找!有知道原因的可以告诉我一下~

4:本次测评的同时,我也顺便写了各个外设接口适配模块,目的是供以后项目如果用到这类单片机就可以方便的移植,当然这里面只是简单的功能,作为一个参考,你的应用功能跟底层交互止步于你的接口适配层,你的应用想移植到其他品牌的单片机,只需修改适配的接口内容即可。

 最后整个工程代码上传分享~

GD32L23x.zip

1.92 MB, 下载次数: 30

此帖出自GD32 MCU论坛

最新回复

很nice,蹲一个后续。   详情 回复 发表于 2022-3-1 09:41
点赞(1) 关注
 

回复
举报

44

帖子

13

TA的资源

一粒金砂(中级)

沙发
 

很nice,蹲一个后续。

此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表