GD32F4 hal库以及GD标准库串口测试
GD32F407VET6
Name | Value |
---|---|
型号 | GD32F407VET6 |
下载 | SWD |
串口 | USART1 |
输入晶振 | 25M |
HAL库测试
-
选择STM32F407VE库
-
配置SYS为SW,RCC为HSE
-
串口1启用异步通信
-
生成代码
-
启用microlib库,重写PRINTF库
-
下载选择JLINK SW,下载测试
标准库测试
标准库采用GD的库
-
仿照HAL库,生成模板。所需文件从GD32F4xx_Firmware_Library中查找
模板文件结构如下
└───demo ├───Drivers │ ├───CMSIS │ │ └───GD │ ├───GD32F4xx_standard_peripheral │ └───GD32F4xx_usb_library ├───Inc ├───MDK-ARM └───Src
-
修改include路径,晶振,debug配置等参数
-
配置
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); }
-
重写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; }
-
编译运行
分类:
GD32
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App