极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11206|回复: 3

求大神看看为什么会出现这种情况!!!!!!!!!

[复制链接]
发表于 2013-11-18 21:08:06 | 显示全部楼层 |阅读模式
程序是:
#include <SoftwareSerial.h>
SoftwareSerial gps(0,1);
char data;
void setup()

{
  Serial.begin(4800);
  gps.begin(4800);
}

void loop()
{
if(gps.available() > 0)
{
   data = gps.read();
   Serial.print(data);
}
}


GPS是SIRF2   TTL接口的

这程序我用在UNO上面可以运行,用串口监视器软件能看到数据。但是用在MAGE2560上面编译能通过。但是不能运行。在串口监视器上看不到任何数据。GPS的TX接MAGE2560上的0(RX0)
为什么会出现这样的情况呢?按道理来讲,在UNO上能运行的,在MAGE2560上应该也能运行啊
回复

使用道具 举报

发表于 2013-11-18 22:18:53 | 显示全部楼层
不是所有的io口都可以rx的

Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
回复 支持 反对

使用道具 举报

发表于 2013-11-18 22:41:46 | 显示全部楼层
0,1是硬件串口吧,直接用就可以了,为什么还给定义成软件串口呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-19 12:01:47 | 显示全部楼层
i7456 发表于 2013-11-18 22:41
0,1是硬件串口吧,直接用就可以了,为什么还给定义成软件串口呢

不知大神是否给改改这程序。我把SoftwareSerial这个函数去掉过。结果的确可以显示。但是复位开关不能按。一按GPS就不出数据了,如果再要运行,就必须把GPS的接口线抽掉,然后再按一下复位。然后接上去才能在读出来。我就在想是不是我编的程序有冲突  程序如下:
int rxPin = 0;                    // RX
int txPin = 1;                    // TX
char data;
void setup()

{
  Serial.begin(4800);
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
}

void loop()
{
if(Serial.available() > 0)
{
   data = Serial.read();
   Serial.print(data);
}
}
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 06:43 , Processed in 0.035371 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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