标题: while(UART1.ucTX_Busy_Flag); 这条C语言语句怎么理解? [打印本页]

作者: MYJ918    时间: 2023-9-15 15:14
标题: while(UART1.ucTX_Busy_Flag); 这条C语言语句怎么理解?
while(UART1.ucTX_Busy_Flag);   这条语句怎么理解?
uint8_t  volatile ucTX_Busy_Flag;  初始化赋值是  FALSE,

while(UART1.ucTX_Busy_Flag);   -> while(FALSE);   

/*
        * @name   SendData
        * @brief  发送字符
        * @param  dat:待发送字符
        * @retval None      
*/
static void SendData(uint8_t dat)
{
        while(UART1.ucTX_Busy_Flag);       //等待前面的数据发送完
        UART1.ucTX_Busy_Flag = TRUE;       //置位忙碌标志
        SBUF = dat;                        //写数据至UART寄存器
}


作者: Hephaestus    时间: 2023-9-15 15:47
UART1.ucTX_Busy_Flag为真就死循环。
作者: Longan.Wang    时间: 2023-9-15 17:26
注释已经说的很明白啊,保证USART发送部分空闲啊。
作者: 猪猪侠9527    时间: 2023-9-20 16:55
while(UART1.ucTX_Busy_Flag==1);则程序陷入死循环无法跳出,会不断的执行这行代码
作者: 123456ZXC1    时间: 2023-9-20 17:22
用于等待UART1(通用异步收发器1)的发送缓冲区空闲标志(ucTX_Busy_Flag)变为非零




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1