概述
本章主要配置printf进行打印。 查阅手册可以得知,PA9、PA10为串口0的输出和输入口。需要GD样片的可以加群申请:615061293。

样品申请
https://www.wjx.top/vm/wFGhGPF.aspx#
硬件准备
这里准备了2块开发板进行验证,分别是GD32303C_START开发板。

keil配置
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。

串口初始化
对串口进行配置。
/* 使能GPIOB时钟*/
rcu_periph_clock_enable(RCU_GPIOA);
/*设置PA0为浮空输入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
/* 使能GPI0A,用PA9、PA10为串口 */
rcu_periph_clock_enable(RCU_GPIOA);
/*使能串口0的时钟 */
rcu_periph_clock_enable(RCU_USART0);
/*配置USARTx_Tx(PA9)为复用推挽输出*/
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
/*配置USARTx_RxPA9)为浮空输入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* USART 配置 */
usart_deinit(USART0);//初始化USART0
usart_baudrate_set(USART0, 115200U);//设置串口USART0波特率为115200
usart_receive_config(USART0, USART_RECEIVE_ENABLE);//启用USART0接收
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);//启用USART0发送
usart_enable(USART0);//使能USART0
串口重定向
/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
usart_data_transmit(USART0, (uint8_t)ch);
while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
return ch;
}
打印测试
while(1){
printf("串口0打印!");
delay_1ms(1000);
}
测试结果

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
固件库
+关注
关注
2文章
98浏览量
15691 -
Printf
+关注
关注
0文章
84浏览量
14860 -
gd32f303
+关注
关注
4文章
38浏览量
4271
发布评论请先 登录
相关推荐
热点推荐
qemu仿真sc594 arm核运行最简单demo,printf无打印是怎么回事?
使用cces qemu运行以上最简单demo,printf内容未打印,请帮忙看看原因,配置如下
Using CCES QEMU to run the simplest demo above
发表于 05-12 07:04
求助 GD32F303CCT6 + ADAU1701 的I2C不能通信
的 SigmaStudio 工程是否需要特殊配置才能让外部 MCU 通过 I2C 控制? 有没有类似\"启用外部控制\"的选项需要勾选?
GD32F303 的 I2C0 重映射到 PB8/PB9
发表于 05-10 11:02
基于RT-Thread与兆易创新GD32F527的工业级网络-CAN透传网关设计与实现 | 技术集结
目录系统概述RT-Thread使用情况硬件框架软件架构软件模块详解功能展示链接地址1系统概述本系统是一个基于GD32F527I_EVAL和RT-Thread实时操作系统开发的工业级网络-CAN总线透
求助,关于C代码中的printf打印的疑问求解
在使用E203 testbench执行附带的benchmark测试用例时候,得到如下打印信息:
CPU验证小白一枚,有个问题不是很理解:黄色框框内的字符看起来应该是C代码中的printf语句
发表于 11-10 07:54
使用VScode的PIO开发GD32VF103,但是串口无法打印浮点数怎么解决?
我最近在使用VScode的PIO开发GD32V,使用的是longan的模板,但是我将串口输出重定义到printf函数中,发现无法使用%f输出浮点数,想问问应该怎么
发表于 11-06 06:49
兆易创新GD32F5xx与GD32G5xx STL软件测试库获颁IEC61508功能安全认证
业界领先的半导体器件供应商 兆易创新GigaDevice 宣布,其GD32F5xx与GD32G5xx系列MCU配套的STL(Software Test Library)软件测试库获得德国莱茵TÜV
MCU无法检测到W5500是怎么回事?
在兆易创新 GD32F303,国民技术 N32G457和ST STM32F103上试用了W5500以太网模块(RT-Thread版本是rt-thread-4.1.1),
只有STM32F103上可以
发表于 10-14 07:38
backtrace命令无法使用?为什么?
GD32F303,之前一直用nano,最近使用5.2.0标准版,工程使用最新版本bsp中的,直接下载,发现有backtrace命令,根据提示使用,一直提示无效输入?是M核不支持吗?还是我哪里没有开启,虽然暂时没用到,还是想多了解一下?
发表于 09-22 08:13
GD32F103RCT6 rt_kprintf无法打印怎么解决?
使用的芯片为GD32F103RCT6,文件夹board路径里有一个不使用rt操作系统的串口打印配置,映射到printf,使用这个代码配置的
发表于 09-19 07:42
GD32F103RCT6移植qboot,烧录之后系统卡死怎么解决?
如题,我使用的是stm32的hal库对STM32F103RCT6芯片进行配置的代码烧录到GD32F103RCT6中,串口和PWM都调试成功,没有问题,所以开始移植qboot。使用env
发表于 09-19 06:41
GD32的串口DMA收发数据失败怎么解决?
我在使用RTT的GD32F303的BSP时,配置使用串口DMA收发(rt_device_open),发现错误,最终无法收发数据,对比了STM32的BSP发现在drv_usart.c中
发表于 09-17 06:04
GD32F437开发板添加lwip支持后ping不通电脑怎么解决?
使用GD32F437的开发板,在studio中添加lwip的支持后,将开板板设置和电脑相同的网段,并用网线连接开发板和电脑,开发板启动后ping不通电脑,如下:
发表于 09-09 07:43
高新兴瑞联推出新款LTE Cat.1高性能OBD产品GD303
2025年8月,高新兴瑞联新款LTE Cat.1高性能OBD产品——GD303正式上市!凭借卓越的性能、丰富的功能和广泛的应用场景适用性和易用性,GD303将丰富高新兴瑞联的OBD Tracker产品家族,满足更多客户在数字化车队管理中的核心需求。
GD32F303固件库开发(7)----printf打印配置
评论