stm32笔记

STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口 一、如何判断STM32的IO是否兼容5V        STM32的IO,绝大部分都兼容5V,至于哪些兼容5V,需要看STM32芯片的数据手册里的引脚描述表,凡是带FT标志的IO口,都是兼容5V的。 对于正点原子的战舰开发板为例,看IO是否兼容5V,有一个小技巧: 从原理图上看,凡是带有ADC字样的IO,都不兼容5V,反之都兼容5V。如下图所示,其他部分也是 二、 如何选择外设的IO口 对于正点原子的开发板原理图,都是提供了详细的IO功能标注,即每个IO的复 阅读详情

一、GPIO4种输出模式4钟输入模式

在这里插入图片描述
在这里插入图片描述
  浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了.
  开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了.
  推挽,就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻.
(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出

  推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。推挽输出可以输出强高低电平,连接数字器件。
  开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
  开漏形式的电路有以下几个特点:

  1. 利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。
  2. 一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)
  3. OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
  4. 可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。补充:什么是“线与”?:
    在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上. 因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS),晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑. 如果这个结点后面加一个反相器, 就是或 OR 逻辑.
    其实可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。
      由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
      上拉输入/下拉输入/模拟输入:这几个概念很好理解,从字面便能轻易读懂。
      复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)

  最后总结下使用情况:
在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
  STM32设置实例:
(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
(2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;

【已完结STM32】--自学江协科技笔记汇总 STM32F103C8T6学习笔记汇总 阅读详情

相关推荐

学习STM32的笔记

学习STM32的笔记,有STM32的和MQTT,Freerots的内容和代码

qq_45951588的博客 1354

stm32I/O的8种工作模式

转载自原子的论坛: 浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了. 开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了. 推挽,就是有推有拉,任何时候IO口的电平都是确定...

weixin_30723433的博客 842

STM32应用笔记分类汇总,值得收藏

我们知道,STM32的生态系统可以说庞大而完备,技术文档也非常全面而丰富。常用的STM32技术文档包括各个系列参考手册、芯片数据手册、flash编程手册、应用笔记、各种用户手册等。其中应...

weixin_38106263的博客 1670

stm32——GPIO输出

2、引脚电平:0v~3.3v,部分引脚可容忍5v(可以在这个端口输入5v的电压,也认为是高电平。作用:对输入电压进行整形。执行逻辑:如果输入电压大于某一阈值,输出就睡瞬间升为高电平,如果输入电压小于某一阈值,输出就睡瞬间降为低电平。##推挽输出下P-MOS和N-MOS均有效,数据寄存器为1,连接P-MOS,高电平;4、输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。##上拉输入模式(高电平输入模式)下拉输入模式(低电平输入模式)

Niekii的博客 5844

STM32踩坑--NoST-LINK detected

这里出现的NoST-LINK detected是没有扫描到端口 在我使用一段Fly-MCU后,有一天突然发现出现如上错误,再检查的过程中检查以下几点 1.STM32 魔术棒的设置 1.1Debug设置 1.2 utilities 设置没有问题,与原来一样又看了下端口——在设备管理器中;也没有问题 ...

qq_53002477的博客 2万+

ATM火控电容改造实战:提升速凌无刷电机动力与系统稳定性

在嵌入式系统与电机驱动领域,电源完整性是保障电路稳定运行的核心基础。其核心原理在于通过合理的电容网络设计,为负载提供瞬时大电流并滤除高频噪声,从而维持电压稳定。这项技术的核心价值在于能显著提升系统的动态响应能力与可靠性,避免因电压跌落导致微控制器复位或功率器件过应力。典型的应用场景包括无人机电调、机器人关节驱动以及各类需要快速响应的伺服系统。本文聚焦于水弹发射器ATM火控系统的硬件迭代,通过详解电容的选型、布局与焊接流程,特别是针对速凌五代无刷电机的高启动电流特性,系统性地阐述了如何通过强化电源储能与芯片去

weixin_33868027的博客 555

STM32_GPIO

1,不同型号,IO口数量可能不一样,可通过选型手册快速查询2,快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)3,每个IO口都可以做中断4,支持8种工作模式。

zxdzxdzzxd的博客 5444

MLC-LLM框架在安卓设备上的模型编译与部署全流程解析

本文详细解析了如何利用MLC-LLM框架在安卓设备上编译与部署大语言模型。从环境搭建、模型获取与量化编译,到最终的安卓应用打包与调试,提供了完整的实战流程。重点介绍了如何通过MLC-LLM将大型模型优化为适合移动端运行的格式,实现本地、低延迟、隐私安全的AI应用部署。

weixin_29251337的博客 475

STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V?

STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V? http://www.360doc.com/content/16/0121/08/9200790_529468619.shtml STM32的部分IO口可以容忍5V,部分IO口只能是3.3V容忍。 到底哪些能够容忍,查看数据手册,引脚标注”FT"的是可以容忍5V的。 比如:STM32F103xCDE_DS_CH_V5.pd...

星米豪乐园 4万+

【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例

前奏: 【NLG】(一)文本生成评价指标——BLEU原理及代码示例 【NLG】(二)文本生成评价指标—— METEOR原理及代码示例 【NLG】(三)文本生成评价指标—— ENTROPY原理及代码示例 【NLG】(四)文本生成评价指标—— diversity原理及代码示例 【NLG】(五)文本生成评价指标—— kl_divergence原理及代码示例 1.ROUGE原理 2.优缺点 3.如何算ROUGE ...

凝眸伏笔的博客 1万+

Simplorer-Maxwell联合仿真速度太慢?我用这3个技巧把仿真时间砍半(附SVPWM周期与步长设置避坑)

本文详细介绍了Simplorer-Maxwell联合仿真性能优化的3个关键技巧,包括仿真步长与周期的科学配置、基于任务调度的加速技术以及模型简化与精度平衡。特别针对SVPWM参数设置提供了避坑指南,帮助工程师在不牺牲精度的情况下将仿真时间缩短50%以上,适用于电机驱动系统开发等场景。

weixin_29189381的博客 466

【STM32】江科大STM32笔记汇总(已完结)

STM32江科大笔记汇总 STM32学习笔记 课程简介(01) STM32简介(02) 软件安装(03) 新建工程(04) GPIO输出(05) LED闪烁& LED流水灯& 蜂鸣器(06) GPIO输入(07) 按键控制LED 光敏传感器控制蜂鸣器(08) OLED调试工具(09) OLED显示屏(10) EXTI外部中断(11) 对射式红外传感器计次 旋转编码器计次(12) TIM定时中断(13)

m0_62005595的博客 1万+

python全栈入门到实战【基础篇 02】环境搭建:Python解释器与PyCharm、VSCode编辑器安装配置详解

本文详解Python环境搭建步骤。首先安装解释器(运行代码核心),需从官网下载,选3.8及以上版本(勿选2.x)。Windows安装必勾“Add Python.exe to PATH”,验证用`python --version`;Mac选universal2安装包,验证用`python3 --version`。 编辑器二选一:PyCharm社区版(免费,新手推荐),安装后需配置解释器路径;VSCode轻量,需装Python插件并选择解释器。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 5万+

【STM32】江科大STM32学习笔记汇总(50)

STM32是一系列由ST Microelectronics(意法半导体公司)推出的微控制器(MCU)。这些微控制器基于ARM Cortex-M架构,并且提供各种不同的封装和引脚配置。STM32系列中一些受欢迎的微控制器包括STM32F103,STM32F407和STM32F429。 STM32微控制器以其低功耗,高性能和广泛的功能而闻名。它们通常用于物联网设备,可穿戴技术和其他需要低功耗和高性能的应用。 总体而言,STM32微控制器是许多开发人员的首选,因为它们的多功能性,可靠性和广泛的功能。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 8847

educoder中Hive综合应用案例 — 用户搜索日志分析

Hive综合应用案例 — 用户搜索日志分析

weixin_46026136的博客 4772

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

STM32HAL库笔记

GPIO、UART、I2C、时钟系统、SPI、中断、定时器、ADC

Hello World! 5235

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Stm32学习笔记,3万字超详细

本文章主要记录本人在学习stm32过程中的笔记,也插入了不少的例程代码,方便到时候CV。绝大多数内容为本人手写,小部分来自stm32官方的中文参考手册以及网上其他文章;代码部分大多来自江科大和正点原子的例程,注释是我自己添加;配图来自江科大/正点原子/中文参考手册。笔记内容都是平时自己一点点添加,不知不觉都已经这么长了。其实每一个标题其实都可以发一篇,但是这样搞太琐碎了,所以还是就这样吧。

TheBszk的博客 10万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【STM32】江科大STM32学习笔记汇总(已完结)

STM32是一系列由ST Microelectronics(意法半导体公司)推出的微控制器(MCU)。这些微控制器基于ARM Cortex-M架构,并且提供各种不同的封装和引脚配置。STM32系列中一些受欢迎的微控制器包括STM32F103,STM32F407和STM32F429。 STM32微控制器以其低功耗,高性能和广泛的功能而闻名。它们通常用于物联网设备,可穿戴技术和其他需要低功耗和高性能的应用。 总体而言,STM32微控制器是许多开发人员的首选,因为它们的多功能性,可靠性和广泛的功能。 ——————

Print World的专栏 19万+

江科大STM32最全笔记整理『上篇』

- NVIC:内核里面用于管理中断的设备,比如配置中断优先级这些东西 - SysTick:内核里面的定时器,主要用来给操作系统提供定时服务的,STM32是可以加入操作系统的,比如FreeRTOS、UCOS等。如果用了这些操作系统,就需要SysTick提供定时来进行任务切换的功能。也可以用这个定时器来完成Delay函数的功能 - RCC:可以对系统的时钟进行配置,还有就是使能各模块的时钟。在STM32中,其他(非内核)外设在上电的情况下默认是没有时钟的,不给时钟操作外设是无效的,目的是降低功耗。所以在操作外设

zhuguanlin121的博客 1万+

探索STM32的奥秘:《STM32自学笔记》带你入门与进阶

探索STM32的奥秘:《STM32自学笔记》带你入门与进阶 【下载地址】经典STM32自学笔记完整扫描版资源下载分享 本书名为《【经典】STM32自学笔记(完整扫描版)》,是一本专为STM32初学者和对ARM Cortex—M3系列微控制器感兴趣的读者编写的自学教程。本书以新颖的思路、简单的逻辑和简洁的语言,详细阐述了作...

gitblog_06629的博客 390

【笔记】STM32篇

STM32学习笔记

qq_48676935的博客 699

STM32学习笔记

STM32控制PMSM学习笔记,板子是N32G435。

jx19sk的博客 1870

STM32标准库学习笔记

个人stm32标准库学习轨迹记录

C语言、数据结构、单片机、嵌入式实时操作系统、C++ 学习路径记录 1295

stm32我的自学笔记

本自学笔记主要记录本人在自学stm32过程中接触到到知识进行记录,仅供自己复习使用。 由于仅了解c语言,对相关电路知识不太了解,我从stm32的实验部分开始。 第一节:跑马灯实验

m0_48939618的博客 419
上一篇: STL的学习
下一篇: stm32的内存分布
Red fog
博客等级 码龄8年 139粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值