串口接收为什么要发送两次?困扰几天了

[复制链接]
3294|3
 楼主| wtt1314 发表于 2007-1-25 11:36 | 显示全部楼层 |阅读模式
最近又碰见很郁闷的事情了,实在是想不通了?麻烦各位哥哥姐姐指点一下我!将不胜感激....
问题时这样的:我从串口接收到一串字符abc,将字符存在缓存数组buf,然后再将字符放在接收数组recbuf内,然后,我要将recbuf内的字符在发送出去,在调试这里的时候,就必须用串口调试工具模拟发送两次才能将abc发送出来,真的很想不明白。buf是直接从SBUF读入的。
        for (;ptr1!=ptr2;)
        {
        char ch=buf[ptr2++];
    
        if (ptr2>=BUFLEN)
        {
            ptr2=0;
        }
        for (n=0;n<RECLEN-1;n++)
        {
            recbuf[n]=recbuf[n+1];
        }
        recbuf[RECLEN-1]=ch;
我真的不知道该怎么办了?,在线等待帮助....
 楼主| wtt1314 发表于 2007-1-25 11:49 | 显示全部楼层

老师们,怎么没人回我啊?

zhaoyu2005 发表于 2007-1-25 19:34 | 显示全部楼层

你的程序我没看懂,估计是逻辑方面的问题

既然能接收到,还能发送,说明串口的设置正确,剩下就是检查你的if和for
方面的逻辑问题了
zoupeng139 发表于 2007-1-25 21:53 | 显示全部楼层

接收abc是一次性接收么 ?

会不会是没来得及读走的 问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

75

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部