GD32F303固件库开发(7)----printf打印配置
概述
本章主要配置printf进行打印。
查阅手册可以得知,PA9、PA10为串口0的输出和输入口。需要GD样片的可以加群申请:615061293。
视频教学
https://www.bilibili.com/video/BV14A4y1Z7Xf/
GD32F303固件库开发(7)----printf打印配置
csdn课程
课程更加详细。
https://download.csdn.net/course/detail/37144
硬件准备
这里准备了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);
}
测试结果
最后
以上的代码会在Q群里分享。QQ群:615061293。
或者关注微信公众号『记帖』,持续更新文章和学习资料,可加作者的微信交流学习!