fangtaonj 发表于 2013-3-29 11:24:12

高手请进,看看这是什么原因.

各位高手帮忙看看程序编译出现如下错误不知什么原因,请给与指导!本人纯菜鸟!帮我改好这三个错误我就能跑起来慢慢试验了。这里先谢谢啊!
GPS_pde:173: error: incompatible types in assignment of 'char' to 'char '
GPS_pde.cpp: In function 'byte get_key(unsigned int)':
GPS_pde:182: error: ISO C++ forbids comparison between pointer and integer

这三个错误是我编译nngh朋友的下面帖子
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=3778&page=2#pid28985
里贴的GPS程序出现的,我也换了版本1.04,GPS也接上了,提示和裸机编译出错提示一样,现在头大了,我很想用这个程序玩玩。

histamine 发表于 2013-3-29 14:59:01

那个代码有几处问题
char* idnmea[] = {"$GPRMC","$GPGGA"}; //IDs dos NMEA que vou utilizar
应该改成
const char* idnmea[] = {"$GPRMC","$GPGGA"}; //IDs dos NMEA que vou utilizar

intadc_key_val ={30, 150, 360, 535, 760 }; //valores do divisor de tensão do teclado do LCD Shield
应该改成
unsigned intadc_key_val ={30, 150, 360, 535, 760 }; //valores do divisor de tensão do teclado do LCD Shield

还有
case 12 :Serial.print("Checksum: ");Serial.print(datastream(11));break;
当datastream这个函数调用参数>=11时,byte fim = indice-2;这里数组访问会越界,呵呵

fangtaonj 发表于 2013-3-29 16:56:26

谢谢楼上histamine朋友,我一会按照您说的试试!

fangtaonj 发表于 2013-3-30 13:34:02

histamine 发表于 2013-3-29 14:59 static/image/common/back.gif
那个代码有几处问题
char* idnmea[] = {"$GPRMC","$GPGGA"}; //IDs dos NMEA que vou utilizar
应该改成
...

按您的提示修改前面两条错误依旧。我估计这两句没问题。每次出错提示后下面这条语句显示黄色,估计应该是您说的第三个原因,但不知如何修改。
      if(data==idnmea){ //Verifies that is $GPRMC

谢谢您的帮助!

histamine 发表于 2013-3-30 14:57:40

本帖最后由 histamine 于 2013-3-30 17:40 编辑

fangtaonj 发表于 2013-3-30 13:34 static/image/common/back.gif
按您的提示修改前面两条错误依旧。我估计这两句没问题。每次出错提示后下面这条语句显示黄色,估计应该是 ...

原帖46行是
if(data==idnmea){ //Verifies that is $GPRMC
注意是data不是data

另外
case 12 :Serial.print("Checksum: ");Serial.print(datastream(11));break;
这行改成
default:break;
就行了

如果编译还通不过,建议将您的pde代码文件传上来,我看看

fangtaonj 发表于 2013-3-30 21:50:28

histamine 发表于 2013-3-30 14:57 static/image/common/back.gif
原帖46行是注意是不是data

另外这行改成就行了


谢谢histmine朋友!按照你的提示修改,程序终于调通了,虽然GPS还不能正常工作,但编译和上传都无问题,谢谢您!毛病就是46行缺,还有三处也是这个原因,不知为什么复制粘贴还能漏字,好奇怪!呵呵!
页: [1]
查看完整版本: 高手请进,看看这是什么原因.