GPIO_MODE_INPUT(输入模式)GPIO_MODE_OUTPUT(输出模式)GPIO_MODE_AF(复用模式)GPIO_MODE_ANALOG(模拟模式)形参pull_up_down为GPIO的上下拉设置,对应的实参为:GPIO_PUPD_NONE(无上下拉)GPIO_PUPD_PULLUP(上拉)GPIO_PUPD_PULLDOWN(下拉)形参pin为pin脚号,实参为GPIO_PIN_x(x=0..15)。(2) 设置 AF 类型...
GPIO_MODE_AF(复用模式) GPIO_MODE_ANALOG(模拟模式) 形参pull_up_down为GPIO的上下拉设置,对应的实参为: GPIO_PUPD_NONE(无上下拉) GPIO_PUPD_PULLUP(上拉) GPIO_PUPD_PULLDOWN(下拉) 形参pin为pin脚号,实参为GPIO_PIN_x(x=0..15)。 (2) 设置 AF 类型 gpio_af_set 当需要将GPIO设置为复用模式时,...
/* GPIOx(x=A,B,C,D,E,F,G,H,I) definitions */#defineGPIOA(GPIO_BASE +0x00000000U)/*!< GPIOA bsae address */#defineGPIOB(GPIO_BASE +0x00000400U)/*!< GPIOB bsae address */#defineGPIOC(GPIO_BASE +0x00000800U)/*!< GPIOC bsae address */#defineGPIOD(GPIO_BASE +0x00000C00...
最后到了宏 GPIO_BASE,宏展开为 APB2_BUS_BASE加上偏移量 0x800得到了 GPIO端口的寄存器组的基地址。 在gd32f20x_gpio.h 文件,我们还可以发现有关各个 GPIO 基地址的宏。 /* GPIOx(x=A,B,C,D,E,F,G,H,I) definitions */ #define GPIOA (GPIO_BASE + 0x00000000U)/*!< GPIOA bsae address ...
当需要将GPIO设置为复用模式时,除了调用gpio_mode_se设置GPIO模式外,还需要调用函数gpio_af_set进行复用类型的设置。gpio_af_set函数原型为: void gpio_mode_set(uint32_t gpio_periph, uint32_t alt_func_num, uint32_t pin) { xxx xxx } 其中形参gpio_periph为需要设置的GPIO口组,其对应的实参为GPIOx(...
void gpio_config(void) { /* configure PA8 port */ #if defined GD32F10X_HD || GD32F30X_HD || GD32F20X_CL || GD32E10X gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8); #elif GD32F1X0 || GD32F4XX || GD32F3X0 || GD32E23X ...
gpio_init(GPIOA,GPIO_MODE_AF_PP,GPIO_OSPEED_MAX,GPIO_PIN_8); /* 以下语句为配置系统时钟输出到CKOUT引脚,若希望输出其他时钟可以修改该函数形参, 在GD32F303上仅可以输出以下时钟:RCU_CKOUT0SRC_CKSYS,RCU_CKOUT0SRC_IRC8M,RCU_CKOUT0SRC_HXTAL,RCU_CKOUT0SRC_CKPLL_DIV2*/ ...
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);gpio_pin_remap_config(...
static void bsp_spi1_gpio_cfg(void) { rcu_periph_clock_enable(RCU_GPIOB); rcu_periph_clock_enable(RCU_AF); /* PB12 as NSS */ gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_12); /* SPI1 GPIO config: SCK/PB13, MISO/PB14, MOSI/PB15 */ ...