STM32G0x0系列-点亮一盏灯(寄存器)

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

目录

输入功能

浮空输入:通俗讲就是让管脚什么都不接,悬空着。

上拉输入

下拉输入

模拟输入

输出功能

开漏输出

推挽输出

相关寄存器

GPIOx_MODER 端口模式寄存器

GPIOx_OTYPER 端口输出类型寄存器

GPIOx_ OSPEEDR 端口输出速度寄存器

GPIOx_PUPDR 上拉/下拉寄存器

GPIOx_IDR 端口输入数据寄存器

GPIOx_ODR 端口输出数据寄存器

GPIOx_BSRR 置位 / 复位寄存器

 输出试验:点亮一盏灯

》1.查看自己想要点亮的灯编号

​编辑

 》2.对比电路原理图

》3.编程实现

 结果:


输入功能

浮空输入:通俗讲就是让管脚什么都不接,悬空着。

STM32G0x0系列-点亮一盏灯(寄存器)

此时VDD和VSS所在路径的两个开关同时断开。因为没有上拉和下拉,所以当IO口没有接输入的时候,此时的电平状态会是一个不确定的值,完全由外部输入决定。(一般实际运用时,引脚不建议悬空,易受干扰。 )

优势:这一种输入模式的电平会完全取决于外部电路而与内部电路无关

缺点:在没有外部电路接入的时候,IO脚浮空会使得电平不确定

应用:该模式是STM32复位之后的默认模式,一般用作对开关按键的读取或用于标准的通讯协议,比如IIC、USART的等

上拉输入

IO端口 - 上拉电阻 - 施密特触发器 - 输入数据寄存器 - 读

STM32G0x0系列-点亮一盏灯(寄存器)

输入的电平不会因上下浮动而导致输入信号不稳定,当外部没有信号输入时,上拉电阻会将输入信号钳在高电平,此时引脚始终读到高电平信号。

下拉输入

IO端口 - 下拉电阻 - 施密特触发器 - 输入数据寄存器 - 读

STM32G0x0系列-点亮一盏灯(寄存器)

输入的电平不会因上下浮动而导致输入信号不稳定,当外部没有信号输入时,下拉电阻会将输入信号钳在低电平,此时引脚始终读到低电平信号

模拟输入

未经任何处理的信号

STM32G0x0系列-点亮一盏灯(寄存器)

信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。 所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。

应用:当 GPIO 引脚用于 ADC 采集电压的输入通道时,则需要选择“模拟输入”功能,因为经过施密特触发器后信号只有 0、1 两种状态,所以 ADC 外设要采集到原始的模拟信号,信号源输入必须在施密特触发器之前。

输出功能

开漏输出

输出寄存器上的'0'激活 N-MOS,而输出寄存器上的'1'将端口置于高阻状态 (P-MOS 从不被激活 )。

无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动

可以利用改变上拉电源的电压来适应所需,进而提高外部电路的驱动能力。

STM32G0x0系列-点亮一盏灯(寄存器)

  • 在推挽输出模式下,引脚可以提供两个状态的输出:高电平(Vcc)和低电平(GND)
  • 当引脚处于高电平状态时,它会提供一定的输出电流,以使外部设备工作在高电平逻辑状态。
  • 当引脚处于低电平状态时,它会提供接近零的输出电压,以使外部设备工作在低电平逻辑状态。
  • 推挽输出模式通常用于驱动主动电路(如LED、电机、显示器等),可以提供较高的驱动能力,适用于直接驱动大多数负载。

推挽输出

输出寄存器上的'0'激活 N-MOS,而输出寄存器上的'1'将激活 P-MOS,具备输出高低电平的能力。

当上面的MOS管导通时,GPIO输出高电平1,称为“”。

STM32G0x0系列-点亮一盏灯(寄存器)

当下面MOS管导通时,GPIO输出低电平0,称为“”。

STM32G0x0系列-点亮一盏灯(寄存器)

  • 在开漏输出模式下,引脚只提供低电平状态(GND)的输出。而在高电平状态时,引脚会断开,不提供输出电压
  • 在开漏模式下,引脚上有一个开漏晶体管,可以将引脚连接到GND,但不能将其连接到高电平(Vcc)。
  • 为了使引脚达到高电平状态,需要通过外部上拉电阻将引脚连接到Vcc。当引脚处于开漏状态时,它不提供输出电流,而是允许外部电路或器件通过上拉电阻拉高电平。
  • 开漏输出模式通常用于驱动被动电路(如信号线、总线等),可以实现多个开漏输出引脚的集线器功能,适用于需要共享总线或多点连接的情况。

相关寄存器

GPIOx_MODER 端口模式寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_OTYPER 端口输出类型寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_ OSPEEDR 端口输出速度寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_PUPDR 上拉/下拉寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_IDR 端口输入数据寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_ODR 端口输出数据寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

GPIOx_BSRR 置位 / 复位寄存器

STM32G0x0系列-点亮一盏灯(寄存器)

 输出试验:点亮一盏灯

》1.查看自己想要点亮的灯编号

STM32G0x0系列-点亮一盏灯(寄存器)

 》2.对比电路原理图

STM32G0x0系列-点亮一盏灯(寄存器)

STM32G0x0系列-点亮一盏灯(寄存器)

 STM32G0x0系列-点亮一盏灯(寄存器)

 STM32G0x0系列-点亮一盏灯(寄存器)

 让PB2引脚输出电平就可以点亮灯。

》3.编程实现

分以下几步:

第一步:必须开启GPIOB的时钟,开启时钟才能让单片机知道时间的概念

STM32G0x0系列-点亮一盏灯(寄存器)

将GPIOBEN置为1,就能开启时钟

第二步:将PB2设置为输出模式

STM32G0x0系列-点亮一盏灯(寄存器)

第三步:选择输出类型

STM32G0x0系列-点亮一盏灯(寄存器)

 我选择了推挽输出

第四步:选择输出的电平信号

STM32G0x0系列-点亮一盏灯(寄存器)

根据分析的结果添加代码,实现功能。

ps:csdn出了添加代码包功能,挺不错的,代码就放在上面了 

 STM32G0x0系列-点亮一盏灯(寄存器)

 结果:

STM32G0x0系列-点亮一盏灯(寄存器)

 文章来源地址https://www.toymoban.com/news/detail-460503.html

 

到了这里,关于STM32G0x0系列-点亮一盏灯(寄存器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32寄存器点亮LED灯

     这个灯是 PB5引脚 看原理图可以看出 让GPIOB5输出低电平 就能点亮 那么我们得让 打开控制GPIOB5的时钟 让GPIOB5 输出模式 让GPIOB5低电平 时钟就相当于一个阀门开关,或者理解成水龙头,你打开了 才有水出来,也就是你打开才能工作。 看中文参考手册 系统架构 找到你的GPIO

    2024年02月07日
    浏览(54)
  • 【问题】STM32G0芯片擦除flash失败,发现死在FLASH_SR_CFGBSY一直为1(已解决)

    本人开发stm32g030和g070都遇到过擦除flash失败的问题,HAL库中按照例程方式擦除存在擦除失败问题。例程基本流程如下: 按照这种方式其实很容易擦除失败。网上多数是说中断问题等,还有些是看门狗喂狗问题。 以上问题之外,本人遇到的是FLASH_FLAG_CFGBSY一直被置位,导致擦除

    2024年02月10日
    浏览(54)
  • STM32萌新学习日志——用GPIO外设寄存器输出点亮LED对比库函数点亮LED——谈学习感悟

            本周学习STM32单片机,由于之前学过51单片机,为了便于切入,先学习了寄存器点亮LED灯的方法,整体思路与51单片机相似。在基本掌握后,尝试自己构建库函数雏形,过程比较困难,后面开始借鉴野火官方库函数。         这里其实建议大家在学会构建库函数后

    2024年03月17日
    浏览(95)
  • STM32F103ZET6 GPIO工作模式介绍+使用寄存器点亮第一个LED灯

    目录  GPIO的工作模式介绍 1.输入模式(模拟、上拉、下拉、浮空) 2.输出模式(推挽/开漏) 3.复用功能(推挽/开漏) 4.模拟输入输出(上下拉无影响) 如何使用寄存器点亮第一个LED灯         在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器 GPIOx_

    2024年02月06日
    浏览(71)
  • 单片机控制一盏灯的亮与灭程序解释

    1.这部分代码定义了两个新的数据类型,uchar和uint,分别表示无符号字符型和无符号整型。这里使用了#define预处理指令,将uchar和uint分别定义为unsigned char和unsigned int的别名,方便在代码中使用。 另外,还声明了两个变量i和j,i是一个无符号整型变量,j是一个无符号字符型变

    2024年02月07日
    浏览(37)
  • 【ESP32DEVKITV1学习笔记】WiFi连接网络点亮一盏LED灯|手机APP点亮LED

    拖延症间歇性康复,让我把这个笔记再补充一下下:使用手机APP控制LED的亮灭。 需要注意:本文章仅演示手机APP控制LED亮灭的简单功能,所以使用的是板载的LED,有更多需求的朋友可以根据自己的实际情况来修改例程,以满足自己具体需求。 用户可通过手机APP对LED的亮灭进

    2024年02月09日
    浏览(61)
  • 【STM32】STM32G系列使用CORDIC模块加速计算

    STM32G431系列产品内置了CORDIC运算单元,可以用来加速数学计算,如三角函数、取模、开方等。适合大量数据进行相同的运算操作。配合DMA可以大大节省CPU计算开销。 使用CORDIC模块无需配置参数,若采用DMA方式则只需配置DMA读写通道,配置如下 在代码中对cordic模块进行初始化

    2024年02月12日
    浏览(40)
  • 【STM32】STM32G4系列片内模拟器件-比较器的使用

    STM32G4系列内置了片内模拟比较器,为电机控制、电源监测等方面的应用提供了很大的便利。要使用片内比较器,只需使用STM32CubeMX进行简单配置即可。 首先,在CubeMX中打开比较器的接口,这里展示了比较器1的输入输出端口。 在比较器配置界面中设置好正负输入端口,其中负

    2024年02月08日
    浏览(238)
  • 【国名技术】N32G401单片机驱动配置(STM32系列适用)

    N32G401总体上和STM32F4系列差不多,无论是从芯片资源,还是各种寄存器,都有相通之处,所以N32G401的所有驱动,如果使用smt32的话也可以借鉴使用(修改函数名) 文章代码仅限于参考,如果直接CV是肯定用不了的,源代码链接在最后 PS:所有驱动基于N32G401F7S8-1,一共20个引脚,

    2024年01月19日
    浏览(42)
  • 20230705点亮STC32G实验箱9.6(STC32G12K128)开发板的跑马灯LED(深入了解)

    08第六集:LED闪烁第六集:LED闪烁和花式点灯上和花式点灯上.mp4 09第六集:LED闪烁和花式点灯下.mp4 【大文哥学习32位8051】20230704【冲哥视频】第六集的晶振时钟的学习困惑 2023/7/5 17:36 delay_ms(3000); 刷机的时候如果使用11.0592M的Fosc,3秒钟的延迟大概7秒钟。 刷机的时候如果使用

    2024年02月12日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包