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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!