2735|10

931

帖子

3

TA的资源

纯净的硅(中级)

楼主
 

【GD32E503评测】 UART通讯实验 [复制链接]

 
 

    这几天进行了串口通讯实验,串口发送测试正常,但接收却失败,即使使用范例编译下载测试也是接收不到任何信息,至今不清楚原因。

    按照用户手册的说明,串口通讯使用的是开发板上的USART0接口,但此接口却没有对开发板进行供电,仍然需要通过GD_LINK接口供电,因此需要连接两根USB线:

 

    首先测试的是串口发送,范例是按下KEY_B(上图的红色箭头处)时发送一串字符,测试很顺利,下图是串口调试助手接收到的信息:

    但在测试轮询法接收并发送时却不成功,以下是测试的代码,是我从中断法范例中移植过来的,但接收不到电脑发送的信息,也许是我的代码有问题:

//串口接收并回应测试
	    if(RESET != usart_interrupt_flag_get(EVAL_COM0, USART_INT_FLAG_RBNE)){ //数据缓冲区不为空
            gd_eval_led_on(LED1);
			/* receive data */
            rx_buffer[rx_count++] = usart_data_receive(EVAL_COM0);
            if(rx_count >= rx_buffer_size){
                usart_interrupt_disable(EVAL_COM0, USART_INT_RBNE);            //缓冲区超限
            }
			usart_data_transmit(EVAL_COM0, tx_buffer[tx_count-1]);
            while(RESET == usart_flag_get(EVAL_COM0, USART_FLAG_TC)){ //等待传输完成
            }
			gd_eval_led_off(LED1);
        }

 

    轮询法测试不成功,于是我就直接使用范例中的中断法,直接将范例编译下载到开发板上,按照《用户手册》的提示,上电之后开发板首先发送256字节的数据到超级终端,然后接收超级终端返回的数据:

    测试时串口调试助手接收到完整的256字节数据:

    但我尝试通过串口调试助手发送数据却得不到任何回应,查看范例中的串口中断处理代码,有接收并回应(发送)的代码,也许是还缺少哪项设置吧:

 

    随后我又测试了DMA方式,结果仍然是发送正常,接收却没有任何反应。不知道有谁测试过串口接收么,是不是我的代码有什么问题?

 

 

最新回复

UART能和虚拟串口断开,然后把单片机的RX和TX短路吗?   详情 回复 发表于 2021-3-13 10:23

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

144

帖子

0

TA的资源

版主

沙发
 

可能是串口助手的问题,我的串口助手每次运行前重新打开并设置。

点评

    好象不是这个原因,我用各种方式测试,结果均一样,单片机接收不到数据,就象串口接收功能没有启用一样。     我一直都用这个串口调试助手,从来没有遇到过问题。  详情 回复 发表于 2021-1-14 17:51
 
 
 

回复

931

帖子

3

TA的资源

纯净的硅(中级)

板凳
 
superstar_gu 发表于 2021-1-14 17:07 可能是串口助手的问题,我的串口助手每次运行前重新打开并设置。

    好象不是这个原因,我用各种方式测试,结果均一样,单片机接收不到数据,就象串口接收功能没有启用一样。

    我一直都用这个串口调试助手,从来没有遇到过问题。

 
 
 

回复

1942

帖子

3

TA的资源

版主

4
 

到时候我试一下,这个是个问题,最近忙了点,没时间测评。有时间试一下。

 
 
 

回复

7452

帖子

18

TA的资源

五彩晶圆(高级)

5
 

回环模式测一下。如果回环模式是对的,就检查线材和USB转串

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

931

帖子

3

TA的资源

纯净的硅(中级)

6
 

    范例是发送完数据后再接收数据,然后对比,数据正解点亮LED,不正确则闪烁LED。我使用的串口调试助手不知道如何设置将接收到的数据自动发送回去,因此测试时自然就不可能会收到返回数据。但是范例中断处理函数中有接收数据并直接发送回去的代码,按理串口调试助手发送数据后应该收到返回的数据,但实际上没有反应。另外我将接收缓存数组打印在屏幕上,也是空白的,间接证明没有接收到任何数据,就象接收功能没有使能一样。

点评

UART能和虚拟串口断开,然后把单片机的RX和TX短路吗?  详情 回复 发表于 2021-3-13 10:23
 
 
 

回复

266

帖子

0

TA的资源

一粒金砂(高级)

7
 

usb转虚拟串口那个吗?

点评

不是,是板上的USART0接口,用户手册上有说明的。  详情 回复 发表于 2021-1-16 10:14
个人签名

gitee/casy

 
 
 

回复

931

帖子

3

TA的资源

纯净的硅(中级)

8
 
caizhiwei 发表于 2021-1-15 21:27 usb转虚拟串口那个吗?

不是,是板上的USART0接口,用户手册上有说明的。

 
 
 

回复

266

帖子

0

TA的资源

一粒金砂(高级)

9
 

我今天试了下串口,接收数据后会卡死,很奇怪i

个人签名

gitee/casy

 
 
 

回复

9717

帖子

24

TA的资源

版主

10
 
hujj 发表于 2021-1-15 09:35     范例是发送完数据后再接收数据,然后对比,数据正解点亮LED,不正确则闪烁LED。我使用的串口 ...

UART能和虚拟串口断开,然后把单片机的RX和TX短路吗?

点评

没有测试过。  详情 回复 发表于 2021-3-14 09:03
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

931

帖子

3

TA的资源

纯净的硅(中级)

11
 
littleshrimp 发表于 2021-3-13 10:23 UART能和虚拟串口断开,然后把单片机的RX和TX短路吗?

没有测试过。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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