GD32F4 hal库以及GD标准库串口测试

GD32F407VET6

Name Value
型号 GD32F407VET6
下载 SWD
串口 USART1
输入晶振 25M

HAL库测试

  1. 选择STM32F407VE库

  2. 配置SYS为SW,RCC为HSE

    image

  3. 串口1启用异步通信

  4. 生成代码

  5. 启用microlib库,重写PRINTF库

  6. 下载选择JLINK SW,下载测试

    image

标准库测试

标准库采用GD的库

  1. 仿照HAL库,生成模板。所需文件从GD32F4xx_Firmware_Library中查找

    模板文件结构如下

    └───demo
        ├───Drivers
        │   ├───CMSIS
        │   │   └───GD
        │   ├───GD32F4xx_standard_peripheral
        │   └───GD32F4xx_usb_library
        ├───Inc
        ├───MDK-ARM
        └───Src
    

    image

  2. 修改include路径,晶振,debug配置等参数

  3. 配置USART1(由于某种大家都知道的原因,GD系列编号都是从0开始的)USART0。在examples中有可以copy的代码

    void usart1_init(void)
    {    /* enable GPIO clock */
        rcu_periph_clock_enable(RCU_GPIOA);
    
        /* enable USART clock */
        rcu_periph_clock_enable(RCU_USART0);
    
        /* configure the USART0 Tx pin and USART0 Rx pin */
        gpio_af_set(GPIOA, GPIO_AF_7, GPIO_PIN_9);
        gpio_af_set(GPIOA, GPIO_AF_7, GPIO_PIN_10);
        
        /* configure USART0 Tx as alternate function push-pull */
        gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_9);
        gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
    
        /* configure USART0 Rx as alternate function push-pull */
        gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_10);
        gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
        
        /* USART configure */
        usart_deinit(USART0);
        usart_baudrate_set(USART0, 115200U);
        usart_receive_config(USART0, USART_RECEIVE_ENABLE);
        usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
        usart_enable(USART0);
    }
    
  4. 重写printf函数

    int fputc(int ch, FILE *f)
    {
        usart_data_transmit(USART0, (uint8_t)ch);
        while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
        return ch;
    }
    
  5. 编译运行

image

posted @   USTHzhanglu  阅读(2008)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示