每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
GPIO端口的每个位可以由软件分别配置成多种模式。
1、输入浮空
2、输入上拉
3、输入下拉
4、模拟输入
5、开漏输出
6、推挽式输出
7、推挽式复用功能
8、开漏复用功能
每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。
IO结构图
端口配置表
输出模式位
当I/O端口配置为输入时:
1、输出缓冲器被禁止
2、施密特触发输入被激活
3、根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接
4、出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
5、对输入数据寄存器的读访问可得到I/O状态
当I/O端口被配置为输出时:
1、输出缓冲器被激活
2、开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(PMOS从不被激活)。
推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
3、 施密特触发输入被激活
4、弱上拉和下拉电阻被禁止
5、出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
6、在开漏模式时,对输入数据寄存器的读访问可得到I/O状态
7、在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值
关键字:STM32 IO口配置
引用地址:
STM32的IO口配置
推荐阅读最新更新时间:2024-03-16 16:11
STM32数模转换器的说明
使用STM32 micros的 模拟数字转换器(ADC) 后,接下来要处理的明显内部硬件模块是 数字到模拟转换器(DAC) 。顾名思义,该模块仅具有ADC的补充功能。它将数字二进制值转换为模拟电压输出。 DAC模块具有多种用途,包括音频生成,波形生成等。通常在大多数8位微控制器中,该模块不可用,并且 脉冲宽度调制(PWM)可以稍微满足其需求。 》 块。部分原因是由于它们的硬件资源和运行速度相对较低。所有STM32单片机都具有PWM模块,但大容量STM32也具有DAC模块。 STM32 DAC模块不是很复杂,并且在工作原理方面与ADC模块相似。下面的简化框图显示了STM32 DAC模块的主要组件。 再次请注意低密度STM32微处
[单片机]
一只蝴蝶,改变了单片机市场——STM32诞生十周年纪念
蝴蝶效应理论想必大家都很清楚,而就在十年前的六月,意法半导体(以下简称ST)在北京首发了全球首款采用ARM Cortex-M3 内核的处理器STM32 F3,与此同时,选择了一只蝴蝶作为产品的Logo,正是这只蝴蝶,搅乱了整个MCU市场。 图:尽管公司的平面设计从美女变成了运动员,但那只蝴蝶还在 正如STM32之父、意法半导体微控制器事业部市场总监Daniel Colonna表示,“十年前我们选择了蝴蝶作为STM32的代表Logo,意味着我们要利用STM32,为工程师、开发者们释放更多创造力。”这是Daniel在意法半导体十周年纪念仪式上回忆的。除Daniel之外,意法半导体亚太区MMS及物联网副总裁Arn
[单片机]
STM32入门学习经验总结
1、为什么要把时间花在“犹豫”上? 经验总结:每当我们在入门之前(ARM是这样,DSP也一样),总会会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。 大家一般都是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩板子(实践)。严格地说,应该是模仿实验。熟悉之后才会自己写程序代码实现某个功能。因此,如果你正在咨询STM32;如果你正对STM32心潮澎湃;如果你想入门STM32;那么,
[单片机]
STM32对于U盘访问的硬件/软件实现
一些应用中,涉及到对存储设备的数据访问,例如USD卡、U盘。具备USB OTG控制器的STM32,可以实现对U盘访问的支持。本文介绍STM32对于U盘访问的硬件/软件实现。介绍如何利用STM32CubeMX,一步一步实现STM32访问U盘。仅需简单的几个步骤, 实现U盘访问的应用开发。 MSC类简介 MSC (Mass Storage Class) 是USB规范提供的一种USB大容量存储设备类,允许一个USB接口的设备与USB主机相连接,以便在两者之间传输文件。USB MSC传输协议分为CBI (Control / Bulk / Interrupt) 和 BOT (Bulk-only Transfer)。BOT协议在不影响功能
[单片机]
STM32启动过程解析-2.02固件库启动文件分析
启动过程也许平时开发的时候不用太多关注,但是了解一下有助于我们加深对芯片工作过程的理解。 相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。而Cortex-M3内核则正好相反,有3种情况: 1、 通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000,同时复位后PC指针位于0x2000000处; 2、 通过boo
[单片机]
STM32 基础系列教程 19 – WWDG
前言 学习stm32 窗口看门狗(WWDG)接口使用,学会用STM32内部窗口看门狗(WWDG)接口实现程序异常时自复位功能。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。窗口看门狗由从APB1时钟分频后得到的时钟驱动(PCLK1除以4096 = 36M/4096 = 8.789K),通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器数值之前,如果7位的递减计数器数值(在
[单片机]
STM32开发笔记37: 485总线的收发切换时间
单片机型号:STM32L053R8T6 使用STM32进行485程序设计时,采用中断进行发数,这就意味着在发数的同时还需考虑收发切换时间。先看下程序: while (1) { Target.HAL.CommonUart.SetWorkingMode(2); Target.HAL.CommonUart.SendData(Target.HAL.CommonUart.Buffer, 1); Target.Delayms(4); Target.HAL.CommonUart.SetWorkingMode(1); Target.HAL.WorkingLed.Turn(); Target.Delayms(100);
[单片机]
认识STM32的复位与电源管理
复位功能是一个非常重要的功能,大到PC,小到单片机,每一台计算机系统都有。在我小时候,去网吧的时候,但凡是电脑出现任何一点小问题,网管的第一回答一定是重启。重启和复位就是同一个意思。 发展到现在PC已经很稳定了,复位按钮慢慢的淡出我们的视野,但是在主板上我们依然可以找到复位电路的存在。单片机上的复位功能也有着类似的变化,在我们学单片机那个年代,需要在单片机的外部一个复位电路,从专用引脚上接一个电阻和电容组成的复位电路。如果没有这个电路,单片机就没法工作。现在的新款单片机都把复位功能内置到单片机中。如果是开发项目要手动复位,我们可以在复位引脚上接一个按键用来手动复位。 复位 复位功能的作用是让RAM 中的数据清空,让所有连接
[单片机]