打印
[PIC®/AVR®/dsPIC®产品]

请教个串口通信的问题

[复制链接]
1666|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colorful88|  楼主 | 2014-6-4 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 colorful88 于 2014-6-4 14:49 编辑

最近做的pic16的串口通信,一直接收乱码。写了个小程序进行串口通讯测试,在示波器上显示发送一位的时间是104us,我觉得波特率9600没什么问题。我试着发送0x55,示波器和串口助手显示正常,发送0xAA串口助手上显示AE而示波器上不稳定。我将发送一位的时间调至105us,串口助手显示正常,但示波器数据还是不稳定。
我将测试程序放入源程序,收到的还是乱码,求助大神
沙发
ayb_ice| | 2014-6-4 16:56 | 只看该作者
有没有问题算一下不就知道了
不是什么"觉得"之类的说法

使用特权

评论回复
板凳
ayb_ice| | 2014-6-4 16:59 | 只看该作者
1000000/9600 = 104.17

这个时间没有问题,串口通信误差2%是完全可以正常工作的.

使用特权

评论回复
地板
colorful88|  楼主 | 2014-6-4 17:28 | 只看该作者
本帖最后由 colorful88 于 2014-6-4 17:32 编辑
ayb_ice 发表于 2014-6-4 16:59
1000000/9600 = 104.17

这个时间没有问题,串口通信误差2%是完全可以正常工作的. ...

104us我是算过的,现在的情况是我在程序里加了个串口通信小模块测试,0x55是准的,0xaa就不准了,其他的数也是有准的,有不准的,0x01、0x07就是输出有误的
pic16lf1947的片子
    BAUD1CON = 0x08;    /*BRG16=1*/
    RC1STA = 0x90;  /*允许接收*/
    TX1STA = 0x24;  /*允许发送 BRGH=1*/
    RCIE = 1;
这是我串口的设置,数据放入整体程序后,发出来的就成了乱码了

使用特权

评论回复
5
ayb_ice| | 2014-6-5 08:02 | 只看该作者
通信位数设置对了没有

使用特权

评论回复
6
colorful88|  楼主 | 2014-6-5 19:01 | 只看该作者
ayb_ice 发表于 2014-6-5 08:02
通信位数设置对了没有

位数是8,把波特率设为4800后通讯正常,我打算测试pic引脚信号、max232入信号和出信号再确定是硬件原因还是软件原因

使用特权

评论回复
7
yklstudent| | 2014-6-5 20:39 | 只看该作者
硬件有可能 先排除硬件吧

使用特权

评论回复
8
忘记梦| | 2014-6-6 17:25 | 只看该作者
加一个储能电阻试试,就在单片机的电源盒地之间,有可能是接收位的高位接收混乱了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

56

帖子

0

粉丝