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。
或者关注微信公众号『记帖』,持续更新文章和学习资料,可加作者的微信交流学习!
在这里插入图片描述

posted @ 2022-05-28 22:04  记帖  阅读(290)  评论(0)    收藏  举报