首页 > 其他分享 >GD32开发学习-字符串发送

GD32开发学习-字符串发送

时间:2022-10-19 11:02:36浏览次数:63  
标签:RESET 10 .. USART 发送 start done GD32 字符串

1 背景

串口打印输出的时候出现首字母丢失的情况;

2 分析

参考stm32固件库开发的相关例程,判断问题应该如下:
printf:

		/* 等待发送完毕 */
		while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);	//stm32	

对应的,在GD32中,应该

              while(RESET == usart_flag_get(COM1, USART_FLAG_TBE)); //gd32

不然就会出现首字符丢失的情况;

串口发送字符串同理:

	/* 等待发送数据寄存器为空 */
	while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);	

TXE对应发送缓存寄存器
因此这里应当为:

    /*Waiting for transmission to complete*/
    while (usart_flag_get(COM1,USART_FLAG_TBE) == RESET);

更改后输出正常:

..10:32:11:276 ystem start done
..10:32:11:277  System start done
..10:49:49:896 System start done
..10:49:49:897  System start done

标签:RESET,10,..,USART,发送,start,done,GD32,字符串
From: https://www.cnblogs.com/tongwumiracle/p/16805471.html

相关文章