2524|2

1532

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【GD32L233C-START测评】串行通讯功能测试与程序分析 [复制链接]

由资料可知,GD32L233C开发板具有4个通讯串口,分别是USART0、USART1 、USART3 及UART4。

此外,它配备了相应的串口收发例程以供学习和使用,其工程目录为“04_USART_HyperTerminal_Interrupt”。

那该程序具有怎样的功能呢?

在测试前,首先要做好相应的准备工作,即使用CN100端口来供电,用CN1端口来收发数据,其接口电路如图1所示。

   

 

图1 所用端口

 

在编译下载程序后,需按图2所示来设置串口通信参数,在复位后会见到4个LED灯闪烁一次,随后即可开发板所发出的00~FF的2556个数据。

在通常情况下,似乎功能测试至此就结束了,其实这只完成了一半的测试。

 

 

图2 串口参数设置及数据接收

随后的测试,则要求我们以HEX码的方式向开发板发送00~FF来测试开发板的数据接收功能,见图3所示。

执行到这里,我们会发现开发板上4个LED灯在以流水灯的模式在不停的流动,至此才完成了全部的测试。

 

图3 发送数据

有了前面的测试结果,我们再来观察程序就明了了相对,其主程序如下:

int main(void)
{
    led_init();                    //  LED灯初始化
    systick_config();
    nvic_irq_enable(USART0_IRQn, 0);//  启用中断处理
    led_flash(1);                  //  LED灯闪烁一次
    gd_eval_com_init(EVAL_COM);   //  串口USART0初始化
    usart_interrupt_enable(EVAL_COM, USART_INT_RBNE);  // 使能中断接收
    usart_interrupt_enable(EVAL_COM, USART_INT_TBE);    // 使能中断发送
    while(tx_counter < nbr_data_to_send) {
    }                            //  等待完成数据发送
    while(rx_counter < nbr_data_to_read) {
    }                            //  等待完成数据接收
    transfer_status = memory_compare(tx_buffer, rx_buffer, BUFFER_SIZE); 
                                 //  进行数据收发一致性判别
    while(1) {
        if(SUCCESS == transfer_status) {
                                 //  数据一致,进入LED灯轮流闪烁模式。
            gd_eval_led_on(LED1);
            delay_1ms(200);
            gd_eval_led_on(LED2);
            delay_1ms(200);
            gd_eval_led_on(LED3);
            delay_1ms(200);
            gd_eval_led_on(LED4);
            delay_1ms(200);
            gd_eval_led_off(LED1);
            gd_eval_led_off(LED2);
            gd_eval_led_off(LED3);
            gd_eval_led_off(LED4);
            delay_1ms(200);
        } else {
            led_flash(1);   //  LED灯一起闪烁
        }
    }
}

 

别看这个例程十分简单,但的却是十分的有用,其主要体现在:一是解决了串口的数据收发问题,二是得到了数据收发一致性的判别功能,三是解决字节数据的发送问题,而不是用PRINT语句只能发送字符类的数据,这就为串口设备的控制打开了方便之门。

此帖出自GD32 MCU论坛

最新回复

你好,请问使用过PD8 PD9做低功耗串口使用过么?我调试发现接收到的数据乱码,波特率2400   详情 回复 发表于 2023-7-4 10:47
点赞 关注
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

你好,请问使用过PD8 PD9做低功耗串口使用过么?我调试发现接收到的数据乱码,波特率2400

此帖出自GD32 MCU论坛

点评

没试过,这种现象多数是波特率出入较大的问题。  详情 回复 发表于 2023-7-4 23:52
 
 
 

回复

1532

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
FDGD 发表于 2023-7-4 10:47 你好,请问使用过PD8 PD9做低功耗串口使用过么?我调试发现接收到的数据乱码,波特率2400

没试过,这种现象多数是波特率出入较大的问题。

此帖出自GD32 MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表