GD32F303固件库开发(7)----printf打印配置

描述

概述

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

Printf

样品申请

https://www.wjx.top/vm/wFGhGPF.aspx#

硬件准备

这里准备了2块开发板进行验证,分别是GD32303C_START开发板。

Printf

keil配置

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

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);
            }

测试结果

Printf

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
记帖MCU 2022-11-29
0 回复 举报
交流ⓆU_N:6_15061293 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分