1.硬體 GD32F103C8T6最小系統板 ST-LINK V2下載器 2.GPIO說明 每個通用I/O埠都可以通過兩個32位的控制寄存器(GPIOx_CTL0/ GPIOx_CTL1)和兩個32位 的數據寄存器(GPIOx_ISTAT, GPIOx_OCTL)配置為8種模式:模擬輸入,浮空輸入 ...
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燈閃爍