网络上对于如何配置GD32开发环境有各种各样的例子,笔者就不在这里赘述了,有需要的直接搜索即可。
笔者使用的开发方式为keil5➕vscode
如何点亮一个LED灯
首先,在工程目录下创建一个名为BSP的文件夹,这个文件夹用来存放各种外设以及通信协议的驱动。
创建bsp_led.c极其头文件,之后添加上相关的宏定义以及头文件。
用vscode打开此工程,方便修改以及查阅代码。打开gd32f4xx_gpio.h头文件,查找我们需要的函数。总所周知,要驱动GPIO口,首先要开启GPIO所在PORT的时钟,之后再将GPIO初始化为我们需要的模式,这里是点亮LED,所以我们根据开发板原理图初始化相应的GPIO口即可。
rcu_periph_clock_enable(RCU_GPIOF);
/* 设置PF9推挽输出模式 */
gpio_mode_set(GPIOF, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_9);
gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, GPIO_PIN_9);
/* 设置PF10推挽输出模式 */
gpio_mode_set(GPIOF, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_10);
gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, GPIO_PIN_10);
注意了,GD32与STM32在初始化GPIO这一个部分,还是有些许不同的,STM32使用的是结构体存储GPIO口参数,然后使用库函数将结构体的参数进行初始化,GD32则是直接使用库函数进行初始化。
编写完成之后别忘记在头文件添加上LED初始化的声明。之后在main函数中,实现我们需要的点灯效果。
我们直接在初始化之后,调用gpio_bit_reset(uint32_t gpio_periph, uint32_t pin);
函数即可点亮LED灯。