首先来看GD32F303的库函数,下图来源于官方手册。 GPIO部分库函数 一般来说,读写引脚是我们最常使用的操作,gpio_bit_set、gpio_bit_reset、gpio_bit_write这三个函数用来给引脚设置高低电平。 通过观察可以发现,这三个函数没有什么太大的区别,GPIO_BOP和GPIO_BC分别是通过寄存器来给引脚置位的宏定义,gpio_bit_w...
1;while(1){/* turn on led2, turn off led3 */GPIO_BC(GPIOF) = GPIO_PIN_0;GPIO_BOP(...
(1) 设置 GPIO 模式 gpio_mode_setgpio_mode_set函数原型为: void gpio_mode_set(uint32_t gpio_periph, uint32_t mode, uint32_t pull_up_down, uint32_t pin) { xxx xxx } 其中形参gpio_periph为需要设置的GPIO口组,其对应的实参为GPIOx(x = A,B,C,D,E,F,G),形参mode为需要设置的GPIO模式...
(1) 设置 GPIO 模式 gpio_mode_setgpio_mode_set函数原型为: void gpio_mode_set(uint32_t gpio_periph, uint32_t mode, uint32_t pull_up_down, uint32_t pin) { xxx xxx } 其中形参gpio_periph为需要设置的GPIO口组,其对应的实参为GPIOx(x = A,B,C,D,E,F,G),形参mode为需要设置的GPIO模式...
GPIO_PUPD_PULLUP(上拉) GPIO_PUPD_PULLDOWN(下拉) 形参pin为pin脚号,实参为GPIO_PIN_x(x=0..15)。 (2) 设置 AF 类型 gpio_af_set 当需要将GPIO设置为复用模式时,除了调用gpio_mode_se设置GPIO模式外,还需要调用函数gpio_af_set进行复用类型的设置。gpio_af_set函数原型为: ...
每个GPIO端口都有两个32位配置寄存器(GPIO_CTL0 ,GPIO_CTL1) ,两个16位数据寄存器 (GPIO_ISTAT和GPIO_OCTL),一个32位置位寄存器(GPIO_BOP),一个16位复位寄存器(GPIO_BC),一个16位锁定寄存器(GPIO_LOCK)。每个I/O端口位可以自由编程。 点亮LED,基本步骤是:配置寄存器;控制寄存器。库开发只是将传统的配置方...
1个 32 位端口置位/复位寄存器(BOP)作用:用来控制IO口输出的高低电平,即OCTL寄存器的低16位为全0...
根据前面实现的GPIO流水灯,本文将其归纳如下: 要想控制LED亮灭,就需要做以上三件事:使能时钟,配置GPIO参数,最后循环控制GPIO的高低电平就能实现流水灯的效果,GPIO的寄存器这里就不说了,更多详细的寄存器描述看官方手册就行,下面先来看看GD32的时钟。 3.2 GD32的时钟系统 ...
GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum]; } GPIO_BC宏使我们更深入地了解框架,可以通过以下两种方法来打开和关闭开发板上的LED,这些方法基本上仅限于使用LED作为索引来展开数据阵列: void gd_eval_led_on(led_typedef_enumlednum) { GPIO_BOP(GPIO_PORT[lednum]) = GPIO_PIN[lednum]; ...
根据前面实现的GPIO流水灯,本文将其归纳如下: 要想控制LED亮灭,就需要做以上三件事:使能时钟,配置GPIO参数,最后循环控制GPIO的高低电平就能实现流水灯的效果,GPIO的寄存器这里就不说了,更多详细的寄存器描述看官方手册就行,下面先来看看GD32的时钟。 2 GD32的时钟系统 ...