STM32学习-12-[串口]接收数据

RxNE寄存器

image

当接收数据寄存器为非空的时候,RxNE寄存器为1,否则为0

接收代码的编写方式

image

		// #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); // 灭灯

错误标志位

图中几个就是错误标志位
image

image

image

image

image

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

posted @ 2026-08-31 14:21  灵垚克府  阅读(4)  评论(0)    收藏  举报