恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

STM32 GPIO 学习笔记

  • 首页
  • 资讯中心
  • /
  • STM32 GPIO 学习笔记

相关资讯

只抓业绩不做战略,企业早晚陷入增长瓶颈 2026/8/11 15:48:47
口碑好的半导体防尘室密集架厂家推荐哪家美誉度高 2026/8/11 15:48:47
终极iOS解锁方案:applera1n轻松绕过iCloud激活锁的完整指南 2026/8/11 15:48:47

最新资讯

高校科研工具推荐:实用好用的科研辅助工具汇总指南
践行“十五五”绿色养护新要求 交科院联合沥路盾走进聊城助力公路低碳转型
CC switch配置API
BetterJoy:突破Switch手柄在Windows平台的通用控制器革命
主流通信协议(Modbus)的适用边界
逆战未来战双联动时间介绍 逆战未来战双联动有什么福利

今日推荐

《人工智能导论:深度学习大模型基础》全套PPT课件2026
9.5 技术债务的重构:何时该动一次大手术
如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

STM32 GPIO 学习笔记

发布时间:2026/8/11 15:48:47
STM32 GPIO 学习笔记 GPIO 基础与配置方法一、GPIO单片机与外界交互最基础的外设输出控制引脚输出高低电平驱动 LED、蜂鸣器等输入读取引脚电平用于按键等外部信号。STM32F103C8T6 的 GPIO 按端口分组每组 16 个引脚二、GPIO 的 8 种工作模式引脚内部通过寄存器配置决定工作模式模式方向说明典型用途浮空输入输入电平由外部决定容易悬空极少使用上拉输入输入内部上拉空闲默认高按键按下接地下拉输入输入内部下拉空闲默认低按键按下接高模拟输入输入不经过施密特触发器ADC 采样开漏输出输出只能拉低需外部上拉I2C、多机共线推挽输出输出能拉高也能拉低驱动强驱动 LED、蜂鸣器复用开漏输出复用由外设控制开漏外设功能复用推挽输出复用由外设控制推挽外设功能如 PWM输出点灯用推挽输出GPIO_Mode_Out_PP读按键用上拉输入GPIO_Mode_IPU。三、GPIO 常用寄存器标准库把寄存器封装成GPIOA-CRL形式代码里无需直接操作寄存器作用CRL配置低 8 位引脚PIN0~7模式CRH配置高 8 位引脚PIN8~15模式IDR输入数据寄存器读ODR输出数据寄存器写BSRR位设置/清除寄存器四、GPIO 配置1. 使能时钟GPIO 挂在 APB2RCC_APB2PeriphClockCmd2. 填充 GPIO_InitTypeDef 结构体调用 GPIO_Init 写入寄存器3. 输入→读取输出→控制使能时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);配置结构体并初始化GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 推挽输出 GPIO_InitStructure.GPIO_Pin GPIO_Pin_0; // 引脚 PA0 GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; // 输出速度 GPIO_Init(GPIOA, GPIO_InitStructure);输入模式不需要GPIO_Speed模式改为GPIO_Mode_IPU/GPIO_Mode_IPD。操作引脚操作函数输出高电平GPIO_SetBits(GPIOA, GPIO_Pin_0)输出低电平GPIO_ResetBits(GPIOA, GPIO_Pin_0)按值写单引脚GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET/Bit_RESET)整端口写GPIO_Write(GPIOA, 0x0001)读取单引脚GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)读取输出寄存器GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0)五、编程常用技巧1. 延时函数软件延时void Delay(uint32_t i) { while (i--); } // 空转延时大小需按主频校准2. 按键软件消抖机械按键按下瞬间会抖动5~20ms需消抖检测到变化后延时跳过抖动二次确认。3. LED 翻转GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0)));4. 流水灯位运算GPIO_Write(GPIOA, 0x0001 i); // 1 左移 i 位点亮第 i 个 LED六、光敏传感器控制蜂鸣器1. 光敏传感器光敏电阻光照强 → 输出低电平光照弱遮挡→ 输出高电平STM32 用 GPIO输入模式读取该电平。2. 与按键的对比输入源电平来源空闲状态读取函数按键手动按下上拉高GPIO_ReadInputDataBit光敏传感器光照变化取决于光照GPIO_ReadInputDataBit思路一致配置为输入模式 → 读取电平 → 根据电平执行动作。区别只在信号源不同。3. 两个功能按键控制 LED按键按下翻转 LED光敏控制蜂鸣器光线变暗时蜂鸣器响起4. 光敏模块接线光敏模块输出引脚 ── GPIO 输入引脚如 PA1 光敏模块 VCC ── 3.3V 光敏模块 GND ── GND七、常见易错点忘记使能时钟→ 写入无效引脚无反应选错总线GPIO 必须用RCC_APB2PeriphClockCmd端口与引脚不一致GPIO_Init(GPIOA,...)要和GPIO_Pin_0对应引脚选错按开发板原理图确认实际引脚模式选错输出用 Push-Pull输入用 IPU/IPD二者不能混用按键不消抖→ 一次按压多次触发高/低电平逻辑错误看清电路低电平点亮时ResetBits才亮

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号