【STM32】使用USART_SendData只能发送两个字节问题

在使用USART_SendData函数单个单个向串口发送数据时,当发送完第二个字节后就无法发送第三个字节
发送的数据为:66 12 34 56
【STM32】使用USART_SendData只能发送两个字节问题_第1张图片
【STM32】使用USART_SendData只能发送两个字节问题_第2张图片
就收到的数据位66 12
【STM32】使用USART_SendData只能发送两个字节问题_第3张图片
这是由于没有复位导致数据不能在继续发送
解决办法,在使用USART_SendData发送完数据后加一条代码即可解决该问题

void USART2_putc(char c)
{
	USART_SendData(USART2,c);
	while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET); 
}

【STM32】使用USART_SendData只能发送两个字节问题_第4张图片
这样数据就能正常全部发送了
【STM32】使用USART_SendData只能发送两个字节问题_第5张图片
参考

你可能感兴趣的:(STM32F103C8T6,stm32,单片机,嵌入式硬件)