GD32F103C8T6入门——GPIO配置点亮LED
1.硬件
GD32F103C8T6最小系统板
ST-LINK V2下载器
-
2.GPIO说明
每个通用I/O端口都可以通过两个32位的控制寄存器(GPIOx_CTL0/ GPIOx_CTL1)和两个32位
的数据寄存器(GPIOx_ISTAT, GPIOx_OCTL)配置为8种模式:模拟输入,浮空输入,上拉输入,
下拉输入,GPIO推挽输出,GPIO开漏输出,AFIO推挽输出和AFIO开漏输出。
IO端口基本结构:
- 3.GPIO外设
3.1如果使用调试端口PB4则需要重映射为GPIO。
//管脚复用时钟使能
rcu_periph_clock_enable(RCU_AF);
//PB4管脚默认是NJTRST,要当GPIO需要使用重映射函数映射
gpio_pin_remap_config(GPIO_SWJ_NONJTRST_REMAP, ENABLE);
3.2库函数的使用
步骤:
使能GPIO时钟;
配置引脚输入/输出模式;
设置引脚输出电平;
//GPIOB时钟使能
rcu_periph_clock_enable(RCU_GPIOA);
//PB4配置输出模式
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
//引脚输出低电平
gpio_bit_reset(GPIOA, GPIO_PIN_4);
//引脚输出高电平
gpio_bit_set(GPIOA, GPIO_PIN_4);
//引脚输出低电平
gpio_bit_write(GPIOA, GPIO_PIN_4, RESET);
//引脚输出高电平
gpio_bit_write(GPIOA, GPIO_PIN_4, SET);
int main(void)
{
rcu_apb2_clock_config(RCU_APB2_CKAHB_DIV1);//设置主频108M
systick_config();//配置1ms SysTick
rcu_periph_clock_enable(RCU_GPIOA);//GPIOA时钟打开
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);//PA4配置成推挽输出,速度50MHZ
while(1)
{
delay_1ms(1000);//等待1000ms
gpio_bit_set(GPIOA, GPIO_PIN_4);//PA4输出高
delay_1ms(1000);
gpio_bit_reset(GPIOA, GPIO_PIN_4);//PA4输出低
}
}
编译成功后连接ST-LINK V2下载器一键LOAD,按复位键运行即可。
5.实现效果
LED灯闪烁