在源码里面看到了这一段代码
//串口发送数据
void Send_Test(void)
{
u8 i;
for(i=0;i<8;i++)
{
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0xFF);
}
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x82);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0xA6);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x7C);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x03);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x14);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x39);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x03);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x00);
while(!(USART3->SR & USART_SR_TXE));
USART3->DR=(u32) ((u8*)0x75);
}
请问 (USART3->SR & USART_SR_TXE 这个是什么意思呢?还有在源码里面的这一部分有个数组的写法,现在找不到了,问问有没有人知道是在哪里出现的这个sendtest函数啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
是啊,我也看不懂啊,SR和SR_TXE完全不一个层面,不知道为啥会&起来。我是在源码里面看到的,好像还有个数组的写法,当时忘记保存了,现在找不到了,,
SR_TXE是这样定义的,可是0x80不是 1000 0000 吗,与USART_SR做“与运算”的时候,后面7位不一直是0吗? 抱歉啊,可能问题很弱智,小白,请海涵啊
TXE是宏定义的0x80,小弟不太明白USART_SR与上USART_SR_TXE代表的含义,
一周热门 更多>