OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3084|回复: 1

【求助】基于HAL库的串口收发信息丢失问题

[复制链接]
回帖奖励 1 金钱 回复本帖可获得 1 金钱奖励! 每人限 1 次

13

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-5-12
在线时间
35 小时
发表于 2019-9-12 11:38:08 | 显示全部楼层 |阅读模式
本帖最后由 早起的达仙僧 于 2019-9-12 16:33 编辑

近期在学习HAL库的串口收发,用在实际GPS定位项目中。
首先进行模块测试,电脑与GPS模块ME3616直接串口通信(经232-ttl转换),在下发一句单次定位命令后,模块会不断回传定位信息直至定位成功。并且如果超过60s,模块会回传time out信息。

然后写了个单片机的程序,目的是通过单片机发送一句单次定位命令给模块,然后接收信息并通过串口助手打印出来,代码片段如下:

  1. <P>void ME3616_GNSS()
  2. {
  3. char buf[256];
  4. char str_len[5];
  5. volatile uint8_t status;
  6. int size;
  7. char ch[90];

  8. //启动单次定位模式
  9. HAL_Delay(250);
  10. char at_zgrun[]="AT+ZGRUN=1\r\n";
  11. HAL_UART_Transmit(p_hlpuart1, at_zgrun, strlen(at_zgrun), 1000);
  12. </P>
  13. <P> </P>
  14. <P>//不断读取接收数据
  15. while(1)
  16. {

  17. memset(ch,0,90);
  18. HAL_Delay(1000);
  19. status=HAL_UART_Receive(p_hlpuart1, ch, 90, 100);
  20. printf("zgrun:%s,%d\r\n",ch,status);//自定义过了,可以通过串口助手监控
  21. }
  22. }</P>
复制代码
但是串口助手上面显示的内容却是断断续续,有时甚至没有收到信息,请问这是为什么?
之前像模块的初始化配置,单片机向模块发一条指令然后读一条信息都正常的。
但是当前发一条指令,然后不断读取模块发回的信息就存在收不到数据的现象,有没有大神能指点一下?


PC与模块直接通信时接收的数据(正常)

PC与模块直接通信时接收的数据(正常)

PC监控单片机读取模块回传的数据(异常)

PC监控单片机读取模块回传的数据(异常)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

231

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2018-12-7
在线时间
131 小时
发表于 2019-9-12 13:48:06 | 显示全部楼层

回帖奖励 +1 金钱

帮顶         
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 10:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表