8g单片机中串口通讯wptr &= 0x0f;
本帖最后由 DebugLab 于 2024-10-8 17:19 编辑void Uart1Isr() interrupt 4
{
if (TI) // 发送中断标志置1时
{
TI = 0; // 清零发送中断标志
busy = 0; // 清零忙状态
}
if (RI) // 接收中断标志置1时
{
RI = 0; // 清零接收中断标志
// buffer = SBUF; // 接收长度16
// wptr &= 0x0f; // 接收长度16
buffer = SBUF; // 接收长度1
if(buffer == '1') // 当接收到的字符是‘1’时
{
blinkflag = 1; // LED闪烁标志置1
}
}
}
不理解wptr&=0xf为什么
因为0x0f为十进制15。
当wptr为15时,加一则变成16(0x10)。
此时通过wptr&=0x0f,则将高四位消去。
变成wptr=0x00。
从而实现0~15的不断循环
页:
[1]