找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2876|回复: 5
打印 上一主题 下一主题
收起左侧

51单片机收不到gps传送的数据求解

[复制链接]
跳转到指定楼层
楼主
ID:398663 发表于 2019-4-9 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把51单片机和gps模块连接,两个都是UART通信,RXD-TXD,TXD-RXD,GND-GND,但是51收不到gps的数据,简而言之是进不去串口中断。经试验证明gps确实在源源不断地发送数据;通过电脑串口助手向51发送数据也能成功进入中断。
可能是什么原因?谢谢各位
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:497670 发表于 2019-4-9 22:31 | 只看该作者
原因很多:
1、晶振选择的对吗?
2、单片机程序对吗?
3、数据解析是不是正确?
回复

使用道具 举报

板凳
ID:277550 发表于 2019-4-9 22:37 | 只看该作者
相关的代码,是怎样的。

GPS 的tx连接到MCU的rx,就可以。。。。。注意波特率要相同的。

~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

地板
ID:523982 发表于 2019-4-29 16:15 | 只看该作者
楼上说的对,单片机只需要接收GPS通过串口发过来的数据就行了,所以只需要接gps的供电,GPS的tx接单片机的RX,51串口1的RX是P3.0。
  1. void Uart_Init()        //串口初始化,11.0592MHz,9600bps                                                            
  2. {
  3.    

  4.         SCON = 0X50;  //UART方式1;8位UART
  5.         REN  = 1;     //允许串行口接收数据
  6.         PCON = 0x00;  //SMOD=0;波特率不加倍
  7.         TMOD = 0x20;  //T1方式2,用于产生波特率
  8.         TH1  = 0xFD;  //装初值
  9.         TL1  = 0xFD;
  10.         TR1  = 1;     //启动定时器1
  11.         EA   = 1;     //打开全局中断控制
  12.         ES   = 1;     //打开串行口中断       
  13. }
复制代码
回复

使用道具 举报

5#
ID:523982 发表于 2019-5-2 12:55 | 只看该作者
我前段时间也发现了这个问题,后来发现是GPS波特率跟单片机串口波特率不匹配。
回复

使用道具 举报

6#
ID:351739 发表于 2019-5-2 16:35 | 只看该作者
依据GPS模块的波特率选择单片机的晶振,以匹配串口波特率。如果硬件没有问题就需要检查程序了。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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