标题:
关于MCU SUBF串口发送的问题求大佬解释
[打印本页]
作者:
hch0086
时间:
2019-4-16 15:31
标题:
关于MCU SUBF串口发送的问题求大佬解释
如图所示,用pcf8591通过AD转换获取数值并通过串口返回,图为样例程序现在不懂的点在于连写了四个SUBF,在第一个SUBF操作完成后,发送中断不就置1了吗,这个程序是如何执行的。
此外,如果我只想通过串口返回D0光敏电阻值,此程序应该如何改写。
小白虚心求教,感激不尽。
qq_pic_merged_1555397767402.jpg
(42.88 KB, 下载次数: 23)
下载附件
2019-4-16 15:27 上传
作者:
笨笨兔
时间:
2019-4-16 16:38
没看全你的程序:估计程序不管发送中断,就靠延时来发送;
延时发送不可取,应该用中断发送,写好发送中断即可;这里面有好多工作要做。
作者:
yzwzfyz
时间:
2019-4-16 16:56
在第一个SUBF操作完成后,需要等一段时间(串行发送需要时间的),串行完数据后,才将发送标记置1!然而,中断是否发生还取决于,你让不让它中断(中断允许位是否已被你置1)。
程序中DELAY(200),就是等待它串行完成,而后再发第二个。可以猜到,“中断允许位是被清0的,即不允许中断”。
作者:
wulin
时间:
2019-4-16 17:04
/**********串口发送函数*************/
void SendOneByte(unsigned char c)
{
SBUF = c; //发送数据
while(!TI); //等待发送完成
TI = 0; //发送中断请求标志位清0
}
//发送字符串(这里4个字节:D[0]~D[3])
void xxxx()
{
unsigned char i;
//其它语句
//........
ES=0; //关串口中断(如果使用了串口中断)
for(i=0;i<4;i++)
{
SendOneByte(D[i]);//调用串口发送函数
}
ES=1; //开串口中断(如果使用了串口中断)
}
作者:
xuyaqi
时间:
2019-4-16 17:18
程序不全不好判断。
作者:
hch0086
时间:
2019-4-22 21:43
非常感谢以上大佬,问题已经解决了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1