各位大侠们!
1. 串口通信TI=1时,还可以继续进行串口通信发送功能吗?
2. 认为1不能发送,假设开始ES=0,它还会进入中断服务程序吗?
3. 课本中说ES=0,关闭了中断串口中断入口,实验中发现,下面程序可以正常运行!注释语句添不添加都无所谓!这究竟是为什么啊 !
ES=0;
flag=0;
send(fog);
while(!TI);
// TI=0; 这里我注释了
send(dat);
while(!TI);
// TI=0; 这里我注释了,不参与编译
ES=1;
void series() interrupt 4
{
if(RI==1)
{
dat=SBUF;
RI=0;
flag=1;
}
if(TI==1)
TI=0;
}
此帖出自
小平头技术问答
的确TI仅仅是一个标志而已,今天有个新的问题,
在串口通信工作方式0,工作下,课本中说发送数据引脚是3.0,发送同步时钟是3.1 TXD,可是我用示波器看到3.1是同步脉冲,跟程序写的频率是一样的,但是3.0 RXD脚一直是高电平,没有跳变的地方,我又想了好久,没找到结果。。。
还有我觉得 TI 标志还是只有软件清零,硬件清零做不到,在中断中删除掉 TI=0,程序就乱了。
一周热门 更多>