永发信息网

求教,为什么我的串口助手无法接收数据,可发送数据

答案:2  悬赏:40  手机版
解决时间 2021-03-22 14:44
  • 提问者网友:山高云阔
  • 2021-03-22 06:25
求教,为什么我的串口助手无法接收数据,可发送数据
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-03-22 07:37
莫非 硬件线路有问题?

比如 RS232 Tx gnd 就是 发送线路

Rx gnd 就是 接收线路
全部回答
  • 1楼网友:患得患失的劫
  • 2021-03-22 08:43
由于没写中断处理程序当发送完成后,触发串口中断进入0x0023地址处运行,就相当于复位了一次一样。所以会出现2次的情况。(第二次由于ti已经为1了所以不会触发中断) 解决方法 1、关闭串口中断 ea=0; es=0; 2、写一个串口中断处理函数 void uartinterrupt(void) interrupt 4 { if(ri)//ri标志位为1代表接收到数据 { ri = 0 ;//清零接收标志位 //在这里添加中断处理函数 } else ti = 0;//如果ri不为1一般是发送完成中断 把ti(发送完成标志位)清零 } 发送完成后清零ti sbuf = 'i'; while(!ti);//等待发送完成 ti = 0;//发送完成后清零ti 这样就可以实现多个字节发送不会造成冲突
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯