登录
首页
串口通信
串口通信
回帖
发帖
正文
主题:P89C669双串口通讯有时会互相冲突问题
点击:472 回复:2
楼主
编辑
引用
管理
xuying2529
单片机P89C669,串口0用来和触摸屏通信,用的是定时器1;串口1用来和PC进行通信,用的是自带的波特率发生器BRT。两串口都是使用中断的方式控制的。客户最近反映在使用的过程中与PC通讯有时会出现死机的情况,但是重新开关机以后又恢复正常,无规律可循。实际测试的过程中发现:两个串口单独烧写程序都能正常工作,但是一旦两个串口程序放一起工作时,与触摸屏通信正常,但与PC通信单片机反应就没那么灵敏了,有时能接收到有时接收不到,用串口监控软件查看是有数据发送出去,但是单片机无应答信号。个人认为是发送的数据未接收完全,而无法产生应答信号。尝试过在一个串口进中断时屏蔽掉另一个(进中断关闭中断标志位,出中断打开中断标志位)或关闭总中断再打开,问题还是无法解决。不知道该怎么解决?
13-11-15 09:18
1楼
编辑
引用
管理
xlian
如果做成硬件握手能解决你的问题,或者使用软件握手,比如你接收不到规定的数据时,请求PC重发;
虽然你使用了两个串口,但你的程序要做成调度模式,如果你的串口带有缓冲或者可配置DMA的话就行;
最后修改:
2013/11/15 22:44:59
13-11-15 22:43
2楼
编辑
引用
管理
xuying2529
哦,这样子是不是就需要更改我原来的通信协议了呢?毕竟已经是成熟的产品,要改通信协议不是很方便的。
最后修改:
2013/11/16 8:31:25
13-11-16 08:19
工控新闻
“台达杯”二十年:让绿色建筑折射人文关怀
产业升级筑牢实体经济根基
ABB 发布 ABILITY® BuildingPro,加速智慧与可持续建筑的脱碳进程和数字化转型
工业经济转型升级持续推进 装备制造业占比提升
ABB收购IPEC,强化数据中心与工业监测综合实力
河南工业增速领跑全国!制造业强劲增长
全球首条!具身智能机器人在宁德时代电池产线实现规模化落地
京东工业构建数字“高速公路”助力工业产业降本增效
更多新闻资讯