欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > stm32week14

stm32week14

2025/12/17 5:43:24 来源:https://blog.csdn.net/weixin_74078488/article/details/147704786  浏览:    关键词:stm32week14

stm32学习

十.GPIO

2.基本结构

基本结构:

图片消失了

F1与其它的的最大区别是上下拉电阻的位置
施密特触发器是一种整形电路,可以将非标准方波,整形成方波

图片消失了

图中MOS管的输出规则:

图片消失了

3.8中工作模式

①输入浮空:

  1. 上下拉电阻均不工作
  2. MOS管关闭
  3. 输入引导至寄存器然后读出
  4. 空闲时,IO状态不确定

②输入上拉:

  1. 上拉电阻工作
  2. MOS管关闭
  3. 输入引导至寄存器然后读出
  4. 空闲时,IO呈现高电平

③输入下拉:

  1. 下拉电阻工作
  2. MOS管关闭
  3. 输入引导至寄存器然后读出
  4. 空闲时,IO呈现低电平

④模拟输入:

  1. 上下拉电阻均不工作
  2. MOS管关闭
  3. 施密特触发器关闭,输入引导至模拟输入

⑤开漏输出:

  1. 上下拉电阻均不工作
  2. P-MOS管关闭
  3. 往ODR(输出控制)输出0,则N-MOS管导通;输出1则关闭
  4. 施密特触发器打开(允许输入)
  5. 不会输出高电平,必须有外部或内部上拉才能输出1

⑥复用开漏输出:

  1. 上下拉电阻均不工作
  2. P-MOS管关闭
  3. 往ODR(输出控制)输出0,则N-MOS管导通;输出1则关闭
  4. 施密特触发器打开(允许输入)
  5. 不会输出高电平,必须有外部或内部上拉才能输出1
  6. 输出来自片上外设

⑦推挽输出:

  1. 上下拉电阻均不工作
  2. 往ODR输出0,则N-MOS管导通;输出1,则P-MOS管导通
  3. 施密特触发器打开(允许输入)
  4. 可输出高低电平

⑧复用推完输出:

  1. 上下拉电阻均不工作
  2. 往ODR输出0,则N-MOS管导通;输出1,则P-MOS管导通
  3. 施密特触发器打开(允许输入)
  4. 可输出高低电平
  5. 输出来自片上外设

F1与其它系列的GPIO的不同:

  1. F1在输出模式,禁止使用内部上下拉,其它系列允许
  2. 不同系列IO翻转速度不同

9.GPIO的寄存器

一共7个寄存器:

  1. CRL:控制位的低位,配置工作模式,输出速度
  2. CRH:控制位的高位
  3. IDR:输入数据
  4. ODR:输出数据
  5. BSRR:设置ODR寄存器的值
  6. BRR:F4之后没有,一般不用
  7. LCKR:配置锁定,用得不多

CRL和CRH的寄存器相同:

图片消失了

CNF(Configuration Bits配置位)用于细化引脚工作模式的关键参数

IDR和ODR的寄存器相同:

图片消失了

BSRR(Bit Set/Reset Register)寄存器:

图片消失了

ODR和BSRR的区别:使用ODR,在读和修改访问之间产生中断,可能会产生风险;BSRR则无风险,所以一般用BSRR(HAL库中的WritePin用的就是BSRR)

10.配置步骤

①使能时钟:__HAL_RCC_GPIOx_CLK_ENABLE()
②设置工作模式:HAL_GPIO_Init()
相关函数:
HAL_GPIO_WritePin(…)
HAL_GPIO_TogglePin(…)
HAL_GPIO_ReadPin(…)

初始化函数示例:

图片消失了

十一.中断

1.介绍

中断:打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断

GPIO外部中断简图:

图片消失了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词