芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
无限的指示器
FTHR-G0001学习(2)GPIO的理解和测试

封面

 

GPIO,即通用输入输出接口

‌GPIO接口‌是嵌入式系统和微控制器中用于数字信号交互的可编程硬件接口,通过软件控制实现外部设备连接与信号传输。‌

 

这是开发板的单片机接线图,从图中看出,除了VDD和VSS电源,其他的18个引脚都是GPIO,这接口利用率可太高了。

 

每个IO端子,都可以配置为8种模式:

模拟输入,浮空输入,上拉输入,下拉输入,推挽输出,开漏输出,复用推挽输出,复用开漏输出。

 

这是一个IO的内部电路

 

下面以板载按钮为例说明上拉输入的原理,这是板载按钮电路图,按钮一端接地,一端接PA2

 

要想按钮有控制作用,PA2必须有高电平,所以通过配置,单片机内部把PA2的上接了一个电阻接到Vdd上。

按钮未按下PA2=1,按钮按下PA2=0

 

 

再以板载LED为例说明开漏输出的原理,这是板载LED电路图,LED阳极接了3.3V,要想LED点亮,阴极必须是低电平。

 

通过程序配置,把PA11定义为开漏输出,内部的NMOS受控。

PA11=高电平,NMOS截至,LED灭。PA11=低电平,NMOS处于导通状态,LED亮。

上面我们知道了IO上拉输入和开漏输出的实现原理,下面通过程序测试一下.

新建了一个项目,再led.c进行IO配置

 

初始化IO后,PA2和PA11就是上拉输入和开漏输出了。

下面继续再led频闪的功能,这里用了GPIO_ResetBits复位和GPIO_SetBits置位功能,时序逻辑是:

PA11=0,亮灯

延时

PA11=1,关灯

延时

 

 

然后再main.c调用一下

 

下载运行,间隔100ms频闪的视频

 

 

再做一下用按键控制LED的亮灭

用了一个if条件判断来控制LED亮灭。

如果PA2=0(按钮被按下),则PA11=0(LED亮),否则PA11=1(LED灭).

这里用了一个新功能,读取GPIO的状态,GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2) 

GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2) == Bit_RESET,就是PA2=0的意思。

 

 

在主程序调用一下

 

按亮松灭的运行视频

 

本次从硬件内部原理上理解了GPIO,以及GPIO的配置和基础应用。

附件是整个项目文件,用keil打开即可使用。

工程附件
Project_MM32G.zip
申请原创奖励
版块: 灵动微电子
前3天 07:57
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
芯查查技术沙龙第4期—ADI智能音频解决方案分享完美落幕LDO串联或并联二极管有什么用?电路保护与特殊应用解析缝纫机伺服0.3秒启停稳如磐石:三招驯服“针位漂移”顽疾伺服电机过载预警:从电流纹波揪出轴承暗伤的猎杀方案芯片丝印反查求助
热门版块
查看更多
问型号
问技术
问行情
麦博大学堂
电子元器件
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计

40

收藏

分享

微信扫码
分享给好友

评论