STM32学习记录1:GPIO配置

GPIO按照ABC进行分组管理,每组GPIO都有自己独立的配置寄存器:

GPIOX_CRL/GPIOx_CRH:输入输出模式配置

GPIOx_IDR:数据输入

GPIOx_ODR:数据输出

 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);   //使能PD端口时钟

 GPIO_InitTypeDef是GPIO的初始化结构

使用IO口:

1.使能时钟

2.定义GPIO数据结构

typedef struct
{
uint16_t GPIO_Pin;   //要操作的引脚

GPIOSpeed_TypeDef GPIO_Speed; //速度

GPIOMode_TypeDef GPIO_Mode;  //模式
}GPIO_InitTypeDef;

3.初始化GPIO数据结构

4.通过库函数接口

 

GPIO配置:

1.悬空输入,降低功耗

2.上下拉:钳位电平,增强驱动(多了一路电流),抗干扰

3.模拟输入:不需要上下拉,不经过触发器,专门模拟电信号,一般ADC

4.开漏输出:通常情况下只能输出0,完美兼容不同外设电平

5.复用:表示IO不是普通的IO,而是具有特殊功能的IO,如SPI,UART等

6.通用的推挽输出:为了提高驱动能力。

 

 

按键轮询:

复制代码
while(1){
            if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0){
                LED_XXX_ON();
                BEEP_XXX_ON();
                Delay(500);
            }else{
                LED_XXX_OFF();
                BEEP_XXX_OFF();
                Delay(500);
            }
复制代码

 

 

posted @   zxkic  阅读(105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示