关于stm8s单片机串口2的疑问
问题是关于stms105的串口2发送方面的。发送一个字符,我的开发板自带程序是这样写的:voidUART2_SendByte(u8TxData){while(UART2_...
问题是关于stms105的串口2发送方面的。
发送一个字符,我的开发板自带程序是这样写的:
void UART2_SendByte(u8 TxData)
{
while(UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET); // 等待传输结束 句1
UART2_SendData8(TxData); //句2
}
我的疑问:应该是先写句2啊,才写句1,也就是句2应该在句1前面啊。
我是这样认为:
第一次进来时,UART2_FLAG_TXE为0没错,于是先发完这第一个字节。当这第1个字节发送完时,UART2_FLAG_TXE被置位位1了。第二次进来时,UART2_FLAG_TXE还是1啊,不就永远停在这个while了吗,那第2个字节怎么发出去的?
验证过了,这个程序是能工作的,实在想不明白了,求教,谢谢了。 展开
发送一个字符,我的开发板自带程序是这样写的:
void UART2_SendByte(u8 TxData)
{
while(UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET); // 等待传输结束 句1
UART2_SendData8(TxData); //句2
}
我的疑问:应该是先写句2啊,才写句1,也就是句2应该在句1前面啊。
我是这样认为:
第一次进来时,UART2_FLAG_TXE为0没错,于是先发完这第一个字节。当这第1个字节发送完时,UART2_FLAG_TXE被置位位1了。第二次进来时,UART2_FLAG_TXE还是1啊,不就永远停在这个while了吗,那第2个字节怎么发出去的?
验证过了,这个程序是能工作的,实在想不明白了,求教,谢谢了。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询