登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:P89C669双串口通讯有时会互相冲突问题

点击:460 回复:2

单片机P89C669,串口0用来和触摸屏通信,用的是定时器1;串口1用来和PC进行通信,用的是自带的波特率发生器BRT。两串口都是使用中断的方式控制的。客户最近反映在使用的过程中与PC通讯有时会出现死机的情况,但是重新开关机以后又恢复正常,无规律可循。实际测试的过程中发现:两个串口单独烧写程序都能正常工作,但是一旦两个串口程序放一起工作时,与触摸屏通信正常,但与PC通信单片机反应就没那么灵敏了,有时能接收到有时接收不到,用串口监控软件查看是有数据发送出去,但是单片机无应答信号。个人认为是发送的数据未接收完全,而无法产生应答信号。尝试过在一个串口进中断时屏蔽掉另一个(进中断关闭中断标志位,出中断打开中断标志位)或关闭总中断再打开,问题还是无法解决。不知道该怎么解决?
13-11-15 09:18
如果做成硬件握手能解决你的问题,或者使用软件握手,比如你接收不到规定的数据时,请求PC重发;
虽然你使用了两个串口,但你的程序要做成调度模式,如果你的串口带有缓冲或者可配置DMA的话就行;
最后修改:2013/11/15 22:44:59
13-11-15 22:43
哦,这样子是不是就需要更改我原来的通信协议了呢?毕竟已经是成熟的产品,要改通信协议不是很方便的。
最后修改:2013/11/16 8:31:25
13-11-16 08:19

工控新闻

更多新闻资讯