51单片机和无线模块zigbee通过串口通信的问题!!!

我的zigbee模块是用串口和外界通信的,于是我用两台电脑分别用RS232的线连一个无线模块,一台发一台收,这个事正常的。然后我写了一个51串口发数据的程序,用RS232的线连接电脑,发现电脑那边收到的数据也是正确的。但是,我用51跟zigbee通过串口连接起来,发送数据就是错误的了。每次收到的都是FF,这到底是为什么呢?串口的设置时没问题的,模块和电脑、单片机波特率都是9600,停止位1,没有奇偶校验位。是不是硬件连接的问题呢?那个zigbee模块自带MAX232的,我的单片机也接了MAX232.求高人指教啊!!

如果没有发送数据也会收到FF,可以试试将zb模块与单片机连接的那个串口线拔掉,看看是否还会收到,如果没有,那么表示串口线有干扰,要换。
建议您按下面步骤先检查一下:
1、首先先确认zigbee模块之间是否能正常通信。两个zb模块直连电脑,用串口调试助手做收发测试,如果通信正常,到第2点;
2、确认单片机的串口设置于zb模块的串口设置是否一致(波特率,数据位,效验位等等),若一致到下一步;
3,、将单片机rs232接口的2、3、5脚与zb模块的2、3、5脚对接,若无数据,则2、3交叉反接,即2接3,3接2,5接5。
通常连不上单片机都是与zb串口连接的部分硬件连接错误,或者串口参数设置不对造成的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-14
请检查zb和51的收发串口线,交叉连接。zb的收连51的发,用万用表测一下,如果有示波器看看zb有无信号波形!祝你好运!追问

交叉连接我是知道的,示波器暂时没有,之后再看下吧。谢谢!

第2个回答  2012-03-14
不知你用的ZigBee是什么型号的呢……如果是CC2430、2530这样的,9600的波特率是不准确的。追问

我的型号是CC2530 ,这个我还真的不知道额,产品说明书里面说可以这么设置。而且我用两台电脑传的时候设置的波特率都是9600,这个说明波特率可以这么设置的吧

追答

在CC2530的文档中肯定提到了波特率设置和误差的专题,仔细看看了。

第3个回答  2012-03-14
你 怀疑 可能是对的

你 不用 max232,模块 串口 与 单片机 直接连试试

祝你顺利追问

谢谢啊!其实这个我也试过了,我现在的连接方法就是直接用单片机的TX引脚跟模块那边的RX引脚连接,模块那边的MAX232是不能去掉的。其实我有一个疑问,RS232电平,到底指的是连接线上的电平逻辑相反,还是单片机那个引脚送出来的电平逻辑就是反的?

追答

你去 百度百科 里 看看 RS232 吧

第4个回答  2012-03-17
你的51引脚出来的电平是5v的还是ttl的,如果是5v请转换成ttl电平!
相似回答