求教,为什么我的串口助手无法接收数据,可发送数据
答案:2 悬赏:40 手机版
解决时间 2021-03-22 14:44
- 提问者网友:山高云阔
- 2021-03-22 06:25
求教,为什么我的串口助手无法接收数据,可发送数据
最佳答案
- 五星知识达人网友:从此江山别
- 2021-03-22 07:37
莫非 硬件线路有问题?
比如 RS232 Tx gnd 就是 发送线路
Rx gnd 就是 接收线路
比如 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
这样就可以实现多个字节发送不会造成冲突
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯