STM32学习-12-[串口]接收数据
RxNE寄存器

当接收数据寄存器为非空的时候,RxNE寄存器为1,否则为0
接收代码的编写方式

// #1。等待接收数据寄存器非空
while(USART_GetFlagStatus(USARTx, USART_FLAG_RXNE) == RESET);// #2.接收数据
uint8_t btyeRcvd = USART_ReceiveData(USARTx);
// #3.处理数据
...
// #1。等待接收数据寄存器RDR非空
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);// #2.读取数据
uint8_t byteRcvd = USART_ReceiveData(USART1);O
// #3. 对数据进行处理
if(byteRcvd == '0')
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET); // 亮灯
else if(byteRcvd == '1')
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET); // 灭灯
错误标志位
图中几个就是错误标志位





过载错误指的是接收数据寄存器和移位寄存器都满了,但是还有数据进来,就会发生过载错误,可能是速度不匹配导致的

浙公网安备 33010602011771号