STM32_GPIO

这篇具有很好参考价值的文章主要介绍了STM32_GPIO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32GPIO

一.介绍

1.1GPIO特点

1,不同型号,IO口数量可能不一样,可通过选型手册快速查询

2,快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)

3,每个IO口都可以做中断

4,支持8种工作模式

1.2GPIO电气特性

1.STM32工作电压:2 V ≤ VDD ≤ 3.6

2.GPIO识别电压范围:COMS端口:-0.3V ≤ VIL ≤ 1.164V 逻辑0

1.833V ≤ VIH ≤ 3.6V 逻辑1

TTL端口:支持5v和3.3v,手册中标为FT

3.GPIO的输出电流:单个IO,最大25mA

1.3GPIO引脚分布

引脚类型:电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

电源引脚

VDD,VSS等V开头的引脚

晶振引脚

PC 14-0,PC 15_0,PD 0-OS,PD1-OS等

复位引脚

NRST

下载引脚

BOOT引脚

BOOT T0

GPIO引脚

除此之外所有引脚

二.GPIO基础

2.1IO端口基本结构

f1系列:

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

f4系列

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

结构

F1系列

F4系列

上下拉电阻

输入可选,输出定值

输入,输出都可选

输入寄存器存储引脚电平,可以进行读取

输出高电平的时候,P-MOS导通,输出低电平的时候,N-MOS导通

输出控制器可以选择读取片外外设

保护二极管作为钳位作用,控制电压在承受范围内

2.2施密特触发器

作用:施密特触发器就是一种整形电路,可以将非标准方波,整形成方波

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

特点:

当输入电压高于正向阈值电压,输出为高;

当输入电压低于负向阈值电压,输出为低;

当输入在正负向阈值电压之间,输出不改变

2.3P-MOS和N-MOS

作用MOS管是压控型元件,通过控制栅源电压( Vgs )来实现导通或关闭。

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

G:栅极 S:源极 D:漏极

P:Vgs<0,导通

N:Vgs>0,导通

三.GPIO的工作

3.1GPIO的八种工作模式

GPIO八种模式

特点及应用

输入浮空

输入用,完全浮空,状态不定

输入上拉

输入用,用内部上拉,默认是高电平

输入下拉

输入用,用内部下拉,默认是低电平

模拟功能

ADC、DAC

开漏输出

软件IIC的SDA、SCL等

推挽输出

驱动能力强,25mA(max),通用输出

开漏式复用功能

片上外设功能(硬件IIC 的SDA、SCL引脚等)

推挽式复用功能

片上外设功能(SPI 的SCK、MISO、MOSI引脚等)

3.1.1输入浮空

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器打开

④双MOS管不导通

特点:空闲时,IO状态不确定,由外部环境决定

3.1.2输入上拉

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻打开

②下拉电阻关闭

③施密特触发器打开

④双MOS管不导通

特点:空闲时,IO呈现高电平

3.1.3输入下拉

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻打开

③施密特触发器打开

④双MOS管不导通

特点:空闲时,IO呈现低电平

3.1.4模拟功能

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器关闭

④双MOS管不导通

特点:专门用于模拟信号输入或输出,如:ADC和DAC

3.1.5开漏输出

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器打开

④ P-MOS管始终不导通

⑤往ODR对应位写0, N-MOS管导通, 写1则N-MOS管不导通

特点:

特点:不能输出高电平, 必须有外部(或内部) 上拉才能输出高电平

3.1.6推挽输出

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器打开

④往ODR对应位写0, N-MOS管导通, 写1则P-MOS管导通

特点:可输出高低电平, 驱动能力强

3.1.7开漏式复用功能

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器打开

④ P-MOS管始终不导通

特点:

1、不能输出高电平, 必须有外部(或内部) 上拉才能输出高电平

2、由其他外设控制输出

3.1.8推挽式复用功能

stm32输入支持多少v,stm32,单片机,嵌入式硬件,Powered by 金山文档

①上拉电阻关闭

②下拉电阻关闭

③施密特触发器打开

特点:

1、可输出高低电平, 驱动能力强

2、由其他外设控制输出

3.2GPIO寄存器

F1系列:

(F1系列)GPIO通用寄存器GPIOX_yyy

CRL,CRH

IDR

ODR

BSRR

BRR

LCKR

配置工作模式,输出速度

输入数据

输出数据

设置ODR寄存器的值

F4之后没有这个寄存器,考虑代码兼容性的话不建议使用

配置锁定,用得不多

F4系列:

(F4/F7/H7系列)GPIO通用寄存器GPIOX_yyy

MODER

OTYPER

OSPEEDR

PUPDR

IDR

ODR

BSRR

LCKR

设置模式

设置输出类型

设置输出速度

设置上下拉电阻

输入数据

输出数据

设置ODR寄存器值

配置锁定,用得不多

四.GPIO的配置

4.1初始化

时钟设置、参数设置、IO设置、中断设置(开中断、设NVIC)(可选)

使能时钟 __HAL_RCC_GPIOx_CLK_ENABLE()

设置工作模式 HAL_GPIO_Init()

设置输出状态(可选)HAL_GPIO_WritePin() HAL_GPIO_TogglePin()

读取输入状态(可选)HAL_GPIO_ReadPin()

HAL库驱动函数

主要寄存器

功能

__HAL_RCC_GPIOx_CLK_ENABLE()

F1:RCC_APB2ENRF4:RCC_AHB1ENRF7:RCC_AHB1ENRH7:RCC_AHB4ENR

开启GPIO时钟

HAL_GPIO_Init(...)

F1:CRL、CRH、ODRF4/F7/H7:MODER、OTYPER、 OSPEEDR、PUPDR

初始化GPIO

HAL_GPIO_WritePin(...)

BSRR

控制IO输出高/低电平

HAL_GPIO_TogglePin(...)

BSRR

每次调用IO输出电平翻转一次

HAL_GPIO_ReadPin(...)

IDR

读取IO电平

4.2读函数(可选)

从外设读取数据(可选)

4.3写函数(可选)

往外设写入数据(可选)

4.4中断服务函数(可选)

根据中断标志,处理外设各种中断事务(可选)文章来源地址https://www.toymoban.com/news/detail-795673.html

到了这里,关于STM32_GPIO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32单片机(一)STM32简介

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月10日
    浏览(60)
  • STM32单片机(二)STM32环境搭建

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月10日
    浏览(63)
  • STM32单片机开发-01 STM32介绍

    通过野火开发板学习单片机 从内核上分有Cortex-M0、M3、M4 和M7 F1 代表了基础型,基于Cortex-M3 内核,主频为72MHZ F4 代表了高性能,基于Cortex-M4 内核,主频180M。 数据手册:用于芯片选型和设计原理图 参考手册:用于编程时查阅 Icode总线 – 该总线讲M3内核的指令总线与闪存指令

    2024年01月21日
    浏览(63)
  • 【STM32】STM32单片机结构及部件原理

    STM32是目前比较常见并且多功能的单片机,要想学习STM32,首先要去了解它的基本构成部分以及各部分的原理。 单片机型号:正点原子STM32F103ZET6 目录 STM32内部结构总览图: 2.内部结构解析         1.内核 :STM32F103ZET6采用的是 ARM Cortex-M3 处理器,内核可以理解为单片机 处

    2023年04月08日
    浏览(51)
  • STM32单片机学习3--STM32控制键盘

    单片机型号:STM32F103C8T6 开发环境:Keil5 4种输入模式 上拉输入模式:在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平(与Vdd相连的为上拉电阻); 下拉输入模式:在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为0,低电平(与Vss相连的为下拉电

    2024年02月10日
    浏览(60)
  • STM32单片机学习4--STM32控制八段码

    数码管:实际上是多个LED按照一定顺序排列,并加上遮罩所构成的元件。 八段码一般会引出9个引脚,其中7个引脚显示数字(或某些字母),1个显示小数点,1个作为片选端。 根据连接方式的不同,数码管分为 共阳 和 共阴 。 共阳在这端输出低电平时点亮,高电平时会熄灭

    2024年01月23日
    浏览(49)
  • 【单片机】STM32单片机的各个定时器的定时中断程序,标准库,STM32F103

    高级定时器和普通定时器的区别(https://zhuanlan.zhihu.com/p/557896041): TIM1是高级定时器,使用的时钟总线是RCC_APB2Periph_TIM1,和普通定时器不一样。 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用

    2024年02月07日
    浏览(58)
  • 【STM32仿真】STM32CubeMX+Keil+Proteus单片机仿真

      博主最近进行单片机的仿真,本篇文章主要利用了STM32CubeMX、Keil和Proteus三个软件,为后期的硬件打下基础。文章主要目的是学习软件的使用和单片机的仿真。   本文是我在学习proteus软件和STM32CubeMX过程当中的心得和学习笔记,在学习时已经有C, C++的基础。文章附上了

    2024年02月16日
    浏览(59)
  • GD32单片机和STM32单片机的对比分析

    GD32单片机和STM32单片机都是基于Arm Cortex-M3/M4内核的32位通用微控制器,广泛应用于各种嵌入式系统和物联网领域。两者之间有很多相似之处,但也有一些不同之处,本文将从以下几个方面对比分析两者的特点、优势和开发成本。 GD32单片机采用的是二代的M3/M4内核,而STM32单片

    2024年02月16日
    浏览(63)
  • stm32系列单片机介绍

        stm32是基于ARM® Cortex®  内核的 32位微控制器和微处理器。常见的内核有:     Cortex-M0,代表型号STM32F0、STM32L0;     Cortex-M0+,代表型号STM32C0(23年新推出,主要针对低成本);     Cortex-M3,代表型号STM32F1、STM32F2、STM32L1;     Cortex-M4,代表型号STM32F3(混合信号)、

    2024年02月06日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包