打印

【求助】串口接收到的数据和发送到PC机上的不一致?

[复制链接]
3942|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fengye5340|  楼主 | 2013-3-11 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,我在用串口接收一个10字节的数据时,出现了一个奇怪现象,期盼各位帮忙解决一下啊,非常感谢!
     是这样:我要接收一个串口数据帧格式如下:EE 01 数据1 数据2 数据3 数据4 FF FC FF FF
     为此建立一个pBuffer[10], 并将串口接收到的字符先放入一个临时缓冲区 temp;再挨个赋值
      然后再用串口2将赋值的数组发送到PC机上。
       简单的就是
                              USART1_ISR()
                               {  
                                      1--确认串口中断--进入
                                         for(i=0;i<10;i++)
                                               {  temp = usart1_buf;
                                                   pBuffer[i]= temp; //这样的目的是为了调试
                                                   usart2_sendata(  pBuffer[i] ); //将接收到的字符发送到PC机上显示 (串口2)
                                               }

                          }
奇怪的问题就在这里产生,当我准备好接收串口数据帧的时候,PC机上能够正常显示接收到的10个字节,比如  EE 01 01 2C 02 3D FF FC FF FF, 但是在仿真调试的时候,watch 窗口中 pBuffer显示的数据却是
FF 00 00 00 00 00 00 00 00 00  ,并且在main()中对  pBuffer 进行处理时,它的值确实也是 FF 00 00 00 00 00 00 00 00 00 ,而不是PC机上显示的  EE 01 01 2C 02 3D FF FC FF FF。这个问题第一次遇到,希望能大侠们给分析一下,谢谢!


沙发
airwill| | 2013-3-11 20:30 | 只看该作者
我估计软件 BUG 的可能比较大.
当然 也不排除波特率不匹配的问题

使用特权

评论回复
板凳
cjhk| | 2013-3-11 20:34 | 只看该作者
不是很了解  楼主  帮你顶一个   顶起来  呵呵  顶起来哦

使用特权

评论回复
地板
fengye5340|  楼主 | 2013-3-12 11:05 | 只看该作者
airwill 发表于 2013-3-11 20:30
我估计软件 BUG 的可能比较大.
当然 也不排除波特率不匹配的问题

已经确定跟波特率没有任何关系

使用特权

评论回复
5
fengye5340|  楼主 | 2013-3-12 11:05 | 只看该作者
cjhk 发表于 2013-3-11 20:34
不是很了解  楼主  帮你顶一个   顶起来  呵呵  顶起来哦

:P非常感谢哦

使用特权

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

本版积分规则

99

主题

454

帖子

11

粉丝