下位机是arm7.用VC写了一个下传程序,用串口(115200,E,8,1)
先传帧描述(02,当前的次序,补码)
下位机收到回送一个说明已经接收了的字符。
PC就发送128byte 的数据,
问题就在于此, 下位机只收到两个。
但只要在PC 的发送128byte前的某段代码加了中断调试,只要按F9后,下位机就能严重正确地收到了128byte.
不用中断,就是用Sleep() 也无一点效应,
如果谁能帮我解决,全分相送,决不失言。

解决方案 »

  1.   

    我觉得应该是PC端的程序内存操作出问题了,release版和Debug版的内存操作不太一样,我经常碰到这样的问题,debug下没问题,到release上发现某些内存居然写不进去数据了 "某某地址写失败,"建议你在release版中加入察看发往串口数据的缓冲区,比如将缓冲区写到文件,看看缓冲区是不是出问题了
      

  2.   

    另外,好羡慕你啊,我真想玩玩ARM7之类的先进的单片机,可惜没条件,呵呵......
      

  3.   

    看看你的串口设置对不对,我以MSComm为例子:
    m_Com.SetSettings(_T("1200,E,8,1")); //波特率1200,无校验,8个数据位,1个停止位
    m_Com.SetSThreshold(0); 
    m_Com.SetRThreshold(1); //参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
    m_Com.SetInputMode(1);
    m_Com.SetInputLen(0);
    在OnXXXComCtrl接收时用足够的时间(比如2秒)延迟看看能否收到。
      

  4.   

    现在ARM7的厂商也比较多,有的只支持Flash写入不支持RAM写入,更不用说仿真
      

  5.   

    TO  yintongshun:
    是支持的。
    TO  AthlonxpX86:
    已经用示波器看是有数据相连的。