新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2017-7-5
- 在线时间
- 0 小时
|
1金钱
在源码里面看到了这一段代码
//串口发送数据
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函数啊?
|
最佳答案
查看完整内容[请看2#楼]
应该是宏定义了#define USART_SR_TXE 0x80,因为TXE是位7。程序中“与”这个值后看结果,是1就说明发送空了,可以接着写数进寄存器;是0说明还没发送出去
|