标题:
STC89C52单片机串口接收数据+2并返回,只加1其他数字都没问题
[打印本页]
作者:
ksdmt
时间:
2020-5-17 13:42
标题:
STC89C52单片机串口接收数据+2并返回,只加1其他数字都没问题
原来的程序是网上的一段+1返回的程序,然后突然想+2试试,发现怎么都是错的,只加+1.改成+3+4的话,返回的数值就是正确的。但是如果用中间变量+2之后再给SBUF赋值的话,也可以实现正确的+2
void ConfigUART(unsigned int baud){
SCON = 0x50; //配置串口为模式 1
TMOD &= 0x0F; //清零 T1 的控制位
TMOD |= 0x20; //配置 T1 为模式 2
TH1 = 256 - (11059200/12/32)/baud; //计算 T1 重载值
TL1 = TH1; //初值等于重载值
ET1 = 0; //禁止 T1 中断
ES = 1; //使能串口中断
TR1 = 1; //启动 T1
}
/* UART 中断服务函数 */
void InterruptUART() interrupt 4{
if (RI){ //接收到字节
RI = 0; //手动清零接收中断标志位
SBUF = SBUF+2; //接收的数据+1 后发回,左边是发送 SBUF,右边是接收 SBUF
}
if (TI){ //字节发送完毕
TI = 0; //手动清零发送中断标志位
}
}
作者:
wulin
时间:
2020-5-17 20:58
/* UART 中断服务函数 */
void InterruptUART() interrupt 4
{
unsigned char i;
RI=0;
i=SBUF;
SBUF=i+2;
while(!TI);
TI=0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1