江科大STM32学习笔记——GPIO

 根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。 

 输入模式

输入分为有数字输入与模拟输入,而数字输入又可以配置成三种输入模式——浮空、上拉、下拉。

 

 当I/O端口配置为输入模式,内部电阻的连接也不同。

上拉输入

内部上拉电阻被连接,就是说上图上开关闭合,下开关断开,当外部没有输入电平时,端口会被拉到高电平。

下拉输入

下拉电阻被连接,当外部悬空,端口默认拉到低电平。

浮空输入

不连接内部电阻,端口状态不确定,由外部电路决定。

在不同输入模式下,输出缓冲寄存器被禁止。输入经施密特触发器处理更加稳定后再传到输入数据寄存器。

模拟输入

GPIO无效,引脚直接接入内部ADC。

输出模式

当端口配置成输出模式,输入依然有效。输出控制后接了两个MOS管,控制两个MOS管的通断来控制输出信号接到VDD/VSS。

推挽输出

  • PMOS、NMOS均有效。高低电平均有较强驱动能力。
  • 当输出数据寄存器为1,上管导通下管断开,输出与VDD直接连接,输出高电平。
  • 当输出数据寄存器为0,上管断开下管导通,输出与VSS直接连接,输出低电平。

开漏输出

  • PMOS不被激活,仅NMOS工作。
  • 当输出数据寄存器为1,下管断开,输出为高阻状态。
  • 当输出数据寄存器为0,下管导通,输出与VSS直接连接,输出低电平。
  • 此模式只有低电平有驱动能力,高电平无。
  • 可用于I2C通信,避免干扰。输出5V电平。

复用推挽\开漏输出

与普通推挽\开漏差不多,但引脚控制权交与片上外设。

GPIO库函数

初始化

当开启完时钟后,对GPIO初始化可以直接调用GPIO_Init()函数

可以看到GPIO_Init()有两个参数,第一个选用的IO口,第二个要结构体变量。

创建结构体变量:

首先定义一个结构体变量,然后再给结构体变量赋值。

也有结构体初始化函数,会给结构体变量赋默认值。

读取端口数值

设置端口值

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
科大STM32笔记是关于STM32单片机的学习笔记,其中涵盖了一些关于按键初始化和按键读取的代码示例。在这些代码中,通过引用中的Key_Init函数来对按键进行初始化,然后通过引用中的Key_GetNum函数来获取按键按下的键码值。代码中使用了STM32GPIO模块来配置引脚的工作模式和读取引脚的电平状态。此外,引用中提到STM32内部集成了硬件收发电路,可以通过写入控制寄存器CR和数据寄存器DR来实现与外设的通信,并通过读取状态寄存器SR来了解外设电路的当前状态。这些寄存器的使用可以实现对外设的控制和监测,减轻CPU的负担。因此,科大STM32笔记主要是介绍了STM32单片机的相关知识和编程技巧。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32学习笔记 -- I2C(科大)](https://blog.csdn.net/weixin_61244109/article/details/131002266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [STM32科大学习笔记](https://blog.csdn.net/weixin_38647099/article/details/128337708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值