当前位置: 首页 > 产品中心 > 串口屏

STM32学习笔记——GPIO工作原理(八种工作模式)

发表时间: 2023-12-26 作者: 串口屏
产品详情

  每个 IO 口能自由编程,但 IO 口寄存器必须要按 32 位字被访问。(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不可能会发生危险。

  VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压。

  对于数字电路来说,VCC是电路的供电电压,VDD是芯片的工作电压(通常Vcc>

  Vdd),VSS是接地点。例如,对于ARM单片机来说,其供电电压VCC一般为5V,一般经过稳压模块将其转换为单片机工作电压VDD = 3.3V。

  TTL肖特基触发器:将模拟信号转化为数字信号,这里有一个阈值电压的概念,比如从低到高达到多少才会导通,从高到底多少才会关闭。

  输入浮空的时候走的是黄色的部分,顺序为①——④。再输入浮空的时候上拉和下拉的两个开关(即②和①之间的开关)是断开的,输入电平从①处输入进去,经过施密特触发器(这时施密特触发器是打开的),电平直接传到输入数据寄存器,然后CPU就能够最终靠读取输入数据寄存器得到外部输入电平的值。即在输入浮空模式下,我们大家可以读取外部的电平。

  输入浮空一般多用于外部按键输入,在浮空输入状态下,IO状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

  上拉电阻的目的是为了能够更好的保证在无信号输入时输入端的电平为高电平,而在信号输入为低电平时输入端的电平应该也为低电平。假如没有上拉电阻,在没有外界输入的情况下输入端是悬空的,它的电平是未知的没办法保证的,上拉电阻就为了保证无信号输入时输入端的电平为高电平。

  将外部的模拟量转换成数字量。外部的输入是模拟的,将其转换成数字量。 作为模拟输入一般是0-3.3v。

  开漏输出模式下,CPU可以写寄存器(位设置/清除寄存器),比如写1,最终会被映射到输出数据寄存器,输出数据寄存器连通的是输出控制电路,如果我们的输出是1,N-MOS管就处于关闭状态(P-MOS从不被激活),这时IO端口的电平就不会由我们输出的1来决定,因为N-MOS管已经截止了,所以IO口的电平是由外部的上拉或下拉决定。在输出模式下,输出的电平也能够最终靠输入电路读取到输入数据寄存器,然后被CPU读取。

  所以,当我们输出1时,我们读取的输出电平可能不是我们输出的1,读取的值是由外部的上拉或下拉决定的。当我们的输出是0,这时N-MOS管处于开启状态,IO口的电平就会被N-MOS管拉到Vss,这时IO口的电平输出就为0,CPU通过输入电路读取IO口的电平也就为0。

  输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般 20mA以内)。

  ①利用外部电路的驱动能力,减少 IC (集成电路)内部的驱动。当 IC 内部 MOSFET(金属-氧化物半导体场效应晶体管,简称金氧半场效晶体管,可分为“N型”与“P型”,通常又称为NMOSFET与PMOSFET,其他简称尚包括NMOS、PMOS) 导通时,驱动电流是从外部的VCC 流经 R pull-up(上拉电阻) ,MOSFET 到 GND。IC 内部仅需很下的栅极驱动电流。

  ②一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,若需要同时具备输出高电平的功能,则需要接上拉电阻。

  ③开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

  复用开漏输出和开漏输出的区别就是输出1和0的来源不同,开漏输出是由CPU写入的,映射到输出数据寄存器连通到输出电路,而复用开漏输出是由复用功能输出决定的,即来自片上的外设,其他的地方都一样。

  复用开漏输出、复用推挽输出能够理解为GPIO口被用作第二功能时的配置情况(比如串口USART),即并非作为通用IO口。

  推挽输出控制输出的寄存器和开漏输出是一样的,当输出为1,这时P-MOS管被导通,N-MOS管截止,输出的1就被传输到IO端口,当输出为0,P-MOS管截止,N-MOS管导通,输出的0就被传输到IO口。同样,我们也能够最终靠输入电路读取IO口的输出。

  推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由 IC 的电源低定。

  推挽电路是两个参数相同的三极管或 MOSFET, 以推挽方式存在于电路中, 各负责正负半周的波形放大任务, 电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

  复用开漏输出、复用推挽输出能够理解为GPIO口被用作第二功能时的配置情况(比如说串口),即并非作为通用IO口。

  当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们能被激活也可以被断开。关键字:编辑:什么鱼 引用地址:STM32学习笔记——GPIO工作原理(八种工作模式)

  (一) 工业现场总线 CAN 的基本介绍以及 STM32 的 CAN 模块简介 首先通读手册中关于CAN的文档,必须精读。 STM32F10xxx 参考手册Rev7V3.pdf 需要精读的部分为 RCC 和 CAN 两个章节。 为什么需要精读 RCC 呢?因为我们将学习 CAN 的波特率的设置,将要使用到 RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。 关于 STM32 的 can 总线粗略地介绍 bxCAN 是基本扩展 CAN (Basic Extended CAN) 的缩写

  的can总线实验心得 /

  在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为经验测试和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。其中独立看门狗的时钟由独立的RC振荡器(STM32F10x一般为40kHz)提供,即使在主时钟发生故障时,也仍然有效,因此能在停止和待机模式下工作。而且独立看门狗一旦启动,除了系统复位,它不能再被停止。但这样引发的一个问题是当MCU进入到低功耗模式后由于CPU停止运行无法喂狗,会导致系统频繁复位。那怎么样才能解决这个问题呢,难道独立看门狗和低功耗模式没法同时使用? 一个很好的方式是在休眠模式下通过RTC定时唤醒来喂狗,喂完够在进入继续进入到休眠模式。比如看门

  ADC是单片机也是STM32在工控上常用功能之一,用来采集电压,温度等作为指标提供给别的部分进行对应的操作,使用32的固件库进行配置相当方便。 这里利用串口打印的方式观察采集到的电压。 #include adc.h void adc_init() { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); RCC_APB2Per

  串口打印ADC采集电压 /

  说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装 芯片 配置、芯片ID、自举程序等等。当然, FLASH还可拿来装数据。 自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了。 FLASH分类 根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoa

  一、IO基本结构: 针对STM32F407有7组IO,分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口。其中IO口的基本结构如下: 二、工作方式: STM32F4工作模式有8种,其中4中输入模式,4种输出模式,分别为:输入浮空、输入上拉、输入下拉、模拟模式、开漏输出、开漏复用输出、推挽输出、推挽复用输出。 1、输入模式: 在输入浮空模式下,电路既不上拉也不下拉,通过施密特触发器送到输入数据寄存器在送入到CPU。输入上拉和下拉模式分别是在电路中经过上拉和下拉后通过施密特触发器送入的CPU,模拟模式下,施密特触发器关闭后信号直接通过模拟通道至片上外设。 2、输出模式:

  随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题慢慢的受到重视,人们一方面在积极开发各类可再生新能源,另一方面也在倡导节能减排的绿色环保技术。太阳能作为取之不尽、用之不竭的清洁能源,成为众多可再次生产的能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的LED固态照明也已被公认为世界一种节能环保的重要方法。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现绿色照明。 本文介绍的太阳能-LED街灯方案,能自动检验测试环境光以控制路灯的工作状态,上限功率点追踪(MPPT)保证最大太阳能电池板效率,恒电流控制LED,并带有蓄电池状态输出以及用户可设定LED上班时间等功能。 系统结

  单片机的太阳能LED街灯解决方案 /

  以下为自己编写的跑马灯程序,其中PA8和PD2连接LED 使用的是官方固件库3.4版本!!!!前提是配置好编译器才可以执行!! 配置流程: 1:系统时钟初始化,包括系统时钟和要开放的IO口或者功能的时钟配置。 2:IO口初始化,包括引脚,速率,输入输出模式等。 注意!!! 1:与51系列不同的是IO口还需要配置时钟,这是STM32省电的一种技巧。 2:IO口需设置为通用IO口,推挽输出。 IO的输出配置可以是推挽模式和开漏模式,具体区别看参考手册108页。 IO口的一般配置流程: GPIO_InitTypeDef GPIO_InitStructure;//定义 GPIO_InitStru

  2019年7月23日 做小车的第三天。 利用可调的PWM脉冲实现步进电机的正反转,思路大致是:利用TIM3(STM32 的定时器除了 TIM6 和 7。其他的定时器都可拿来产生 PWM 输出)的两个通道输出两道PWM脉冲,控制电机的高低电平以实现电机的正反转。 代码如下: #ifndef __TIMER_H #define __TIMER_H #include “sys.h” /**************************************************** 在下面的宏定义中 作用是起一个连接语句的作用意思是用 IN(a) 代表后面的if else语句。 #define IN1(a) if (a) GP

  用PWM实现步进电机的正反转 /

  2023年12月20日,中国 - 意法半导体新软件帮助工程师把STM32微控制器应用代码移植到性能更强大的STM32MP1微处理器上,将嵌入式系统模块设计性 ...

  瑞萨推出面向图形显示应用和语音/视觉多模态AI应用的 全新RA8 MCU产品群

  瑞萨基于Arm® Cortex®-M85处理器的产品在优化图形显示功能的同时,为楼宇自动化、智能家居、消费及医疗应用带来超高性能和领先的安全性2 ...

  Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准

  该系列单片机新增电压电平转换功能,有助于提高灵活性并降低系统成本从手机、汽车到智能恒温器和家用电器,慢慢的变多日常设备与云端相连。随 ...

  今天就分享一个读者问到的关于中断处理的问题。 很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重 ...

  在万利STM32学习板的USB摇杆例程中,摇杆的按键处理并没有消抖处理,因此重新修改了摇杆的驱动,顺便还增加了两个按键以及摇杆中键下压的驱 ...

  STM32F103+ESP8266接入机智云 实现小型IOT智能家居项目

  stm32mp1 Cortex M4开发篇2:通过GPIO点亮LED灯详解

  连接与距离: 安防摄像头新气象—— Wi-Fi HaLow 带来更远传输距离和更低功耗

  研华DS-410航班信息数据显示解决方案 ——有效传递机场信息,提升旅客顺畅旅行体验

  成功转型Fab-Lite模式 加速核心技术产品化 格科微发布系列5000万像素图像传感器

  能效是英伟达 H100 的 8 倍,三星携手 Naver 发布新 AI 芯片

  高通等 4 家半导体企业一同组建,RISC-V 生态企业 Quintauris 正式成立

  Digi-key干货视频教程来袭,意见领袖讲解疑难设计问题,带你突破成长瓶颈~

  从终端到架构,TE Connectivity(TE)助你连接5G高速未来 看视频答题赢好礼!

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程