黑龙江11选5

【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛黑龙江11选5 » 嵌入式开发 » MCU » 黑龙江11选5【GD32VF103之RISC-V开发贴连载】③.串口功能检测

共11条 1/2 1 2 跳转至

【GD32VF103之RISC-V开发贴连载】③.串口功能检测

专家
2020-05-14 15:42:55    评分

    大家好!根据前段时间老师的讲解,今天来分享一下基于串口的基本功能检测。首先我们需要了解一下USART的常用理论知识。通用同步异步收发器 (USART)是用于串行数据交换提供接口,数据帧可以通过全双工或半双工,同步或异步的方式进行传输。USART提供了可编程的波特率发生器,能对系统时钟进行分频产生USART发送器和接收器所需的特定频率。USART支持DMA功能,用以实现高速率的数据通信。

   USART的重要引脚描述如下:

USART重要引脚描述.png      USART模块内部框图如下:

USART模块内部框图.png     关于USART的发送器与接收器、同步通讯时序波形这里就不再赘述。demo工程中也提供了封装好的库函数,至于USART中的状态寄存器、数据寄存器、波特率寄存器、控制寄存器、保护时间和预分频器寄存器,在代码中也有相关的英文注释,这里也不再做过多讲解。关于USART的库函数汇总如下:

USART库函数.png

     按照上回LED灯的简单操作,重新创建新的C工程,然后在主函数中,敲入代码

int main(void)

{

uint data = 'a';

uint i;

gd_eval_led_init(LED1);

gd_eval_com_init(EVAL_COM0);

while(1)

{

gd_eval_led_on(LED1);

for(i=0;i<26;i++)

{

usart_data_transmit(EVAL_COM0,data);

while(usart_flag_get(EVAL_COM0,USART_FLAG_TC)==RESET);

data++;

usart_data_transmit(USART0,0X0A);

while(usart_flag_get(USART0,USART_FLAG_TC)==RESET);

usart_data_transmit(USART0,0X0D);

while(usart_flag_get(USART0,USART_FLAG_TC)==RESET);

delay_1ms(300);

}

gd_eval_led_off(LED1);

delay_1ms(500);

data = 'a';

}

}

    然后在NucleiStudio_IDE中点击编译、调试即下载到开发板中。编译通过,无报错,无警告。

编译通过.png    将开发板的串口插针用跳线帽连接,并使用mini USB数据线与PC端连接,接线如下图所示:

连接.jpg      此时打开电脑的设备管理器,如果已经安装了CH340的USB转串口的驱动,则会显示相对应的串口号,如果没有则显示黄色的叹号,需要安装CH340的驱动。我的串口号显示的是10,因此在SecureCRT软件中打开串口10。

设备串口号.png

     SecureCRT中设置如下参数:

设置串口号.png

     然后点击连接,则会打印如下信息

串口打印.png     同样的办法,在main函数中,修改部分代码,实现通过串口工具发送数据给GD32VF103,然后GD32VF103将数据返回给PC端。

int main(void)

{

uint i;

uint data;

gd_eval_led_init(LED1);

gd_eval_com_init(EVAL_COM0);

while(1)

{

gd_eval_led_on(LED1);

if(usart_flag_get(USART0,USART_FLAG_RBNE)!= RESET)

{

data = usart_data_receive(USART0);

usart_data_transmit(USART0,data);

while(usart_flag_get(USART0,USART_FLAG_TC)==RESET);

usart_data_transmit(USART0,0X0A);

while(usart_flag_get(USART0,USART_FLAG_TC)==RESET);

usart_data_transmit(USART0,0X0D);

while(usart_flag_get(USART0,USART_FLAG_TC)==RESET);

}

gd_eval_led_off(LED1);

delay_1ms(500);

}

}

   然后开发板重新上电,代码编译ok,运行下载到开发板中,打开SSCOM V5.13.1串口调试助手,这里说明一下,如使用SecureCRT软件则现象不是很明显,因为它的发送窗口与输出窗口在同一界面下,因此建议采用SSCOM工具,而且不支持十六进制显示的低版本效果也不是很好,这里推荐V5。13。1版本。通过键盘在发送窗口输入相应字符,则会收到GD32VF103返回的相同字符,并加上换行回车字符。

串口信息.png    提供ASCII码对照表如下:

ASCII表.jpg    此次分享就到这啦,根据官方提供的参考示例,关于串口的操作还有DMA应用,串口中断响应的使用。总而言之,串口是比较常见的通信接口方式,根据其通信协议,同步、异步的特性,熟悉相关寄存器的设置是非常必要的。后期精彩内容,拭目以待。持续更新,尽请期待!




关键词: GD32VF103          RISC-V          USART    

工程师
2020-05-14 17:09:20    评分
2楼


助工
2020-05-14 17:54:37    评分
3楼

不错


助工
2020-05-14 18:09:12    评分
4楼

点个赞


助工
2020-05-14 18:23:28    评分
5楼

谢谢分享


助工
2020-05-14 18:33:15    评分
6楼

感谢楼主分享


助工
2020-05-14 18:53:34    评分
7楼

点个赞


助工
2020-05-14 23:16:05    评分
8楼

感谢分享


助工
2020-05-16 20:46:18    评分
9楼

代码写的很不错


专家
2020-05-17 09:57:26    评分
10楼

继续加油


共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
安徽11选5 江苏快3 江西11选5开奖 海南4+1 江苏快三走势图 福建11选5开奖 上海天天彩选4 浙江快乐12走势 安徽11选5 江苏快三走势图