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灯闪烁


__EOF__

本文作者xiaohu
本文链接https://www.cnblogs.com/xiaohuzaixue/p/17335237.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   EternalH  阅读(1922)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示