请教:简单的带缓冲的串口程序问题

[复制链接]
8762|68
 楼主| klchang 发表于 2011-11-10 13:33 | 显示全部楼层
谢谢前辈们指点!

回40楼 murex:
我在“ES=0;”前加入“RI=0;”,若不重新上电,问题依旧。
 楼主| klchang 发表于 2011-11-10 13:45 | 显示全部楼层
回37楼 NE5532前辈:
我把r_buf初始化定义如下
r_buf[6]={0,0,0,0,0,0};
重新下载程序,在未重新上电之前,还是出现上述问题。
jiabin1024 发表于 2011-11-10 13:55 | 显示全部楼层
顶NE5532
jiabin1024 发表于 2011-11-10 13:59 | 显示全部楼层
将if(r_count==6)    /*判断是否要置r_finished标志*/
改为if(r_count==7)试试看
jiabin1024 发表于 2011-11-10 14:05 | 显示全部楼层
改为if(r_count==5)试试看
jiabin1024 发表于 2011-11-10 14:06 | 显示全部楼层
数据溢出了
 楼主| klchang 发表于 2011-11-10 16:15 | 显示全部楼层
直接这么改不大对,数组元素个数已经确定。这么做没有道理。
dengm 发表于 2011-11-10 16:41 | 显示全部楼层
MCU 运行的是ISP!!!!,  根本不是LZ写的
 楼主| klchang 发表于 2011-11-10 16:57 | 显示全部楼层
回48楼:
没看明白。
murex 发表于 2011-11-10 17:48 | 显示全部楼层
可以使用一个条件进入判断中断开始接收,RI=1的同时得满足条件标志,可以开始接收数据了就把标志置位,接收成功了后就清标志暂停接收,处理完后又继续立标志接收数据
 楼主| klchang 发表于 2011-11-11 08:16 | 显示全部楼层
回50楼:
您的意思是在中断中加入
if(RI&&(r_finish==0))//我使用了现有的接收完成标志r_finish,置位和清零的情况与你说的相反。
{
    ...
    r_finish=1;   
}
3115599 发表于 2011-11-11 08:39 | 显示全部楼层
ZPW-2000闭环电码化系统运用中存在问题的分析及改进
 楼主| klchang 发表于 2011-11-11 08:49 | 显示全部楼层
回50楼:
如果按照我在51楼的理解,重新下载程序,问题依旧。
看样子,只能下载程序后,重新上电解决此问题。
murex 发表于 2011-11-11 10:25 | 显示全部楼层
这个程序我试了下,很正常的,只是我用的是485,就多加了两条485控制条件,发送接收N次都没有问题,串口软件是用的匠人的串口猎人
murex 发表于 2011-11-11 10:32 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| klchang 发表于 2011-11-11 11:21 | 显示全部楼层
回楼上:
谢谢您的帮助!
我使用的STC 51单片机,使用串口转USB下载线下载程序,我除了使用上面的串口调试工具,还使用了STC自带的串口调试软件,在未重新上电之前,存在上述问题。
上电后,就正常了。
是不是你用的是其他编程器或单片机下载程序的?
dong_abc 发表于 2011-11-11 12:35 | 显示全部楼层
STC的ISP冒视跟别家的不一样,曾经调试一个小程序也遇到过这种问题。
murex 发表于 2011-11-11 16:19 | 显示全部楼层
我就是用的STC的下载工具,也没有重新上电过的
murex 发表于 2011-11-11 16:19 | 显示全部楼层
我这个的型号是STC12C5A60S2
cqwangsf 发表于 2011-11-11 21:19 | 显示全部楼层
本帖最后由 cqwangsf 于 2011-11-11 21:34 编辑

1234
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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