网站开发及技术路线,嘉兴网站seo公司,河南seo公司,建设网站专业公司这几篇博文讲的不错#xff0c;可参照着理解#xff1a; STM32下拉输入模式与振动传感器的使用 “上拉电阻与下拉电阻”通俗解读 上、下拉电阻#xff08;定义、强弱上拉、常见作用、吸电流、拉电流、灌电流#xff09; 个人总结#xff1a;
模拟量选浮空输入#xff0c… 这几篇博文讲的不错可参照着理解 STM32下拉输入模式与振动传感器的使用 “上拉电阻与下拉电阻”通俗解读 上、下拉电阻定义、强弱上拉、常见作用、吸电流、拉电流、灌电流 个人总结
模拟量选浮空输入模拟量是连续变化的值数字量就两种状态0和1选上拉和下拉通过“拉高拉低”增益效果消除中间态“”模糊电压“同时赋予电路确定的初始值高或低。 更多干货推荐可以去牛客网看看他们现在的IT题库内容很丰富属于国内做的很好的了而且是课程刷题面经求职讨论区分享一站式求职学习网站最最最重要的里面的资源全部免费点击进入--------------》跳转接口 更多干货推荐可以去牛客网看看他们现在的IT题库内容很丰富属于国内做的很好的了而且是课程刷题面经求职讨论区分享一站式求职学习网站最最最重要的里面的资源全部免费点击进入--------------》跳转接口 目录STM32引脚说明GPIO种类GPIO基本结构GPIO输入输出的8种模式上拉输入模式下拉输入模式浮空输入模式模拟输入模式开漏输出模式开漏复用输出模式推挽输出模式推挽复用输出模式模式用途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复用推挽输出总结与分析1、什么是推挽结构和推挽电路2、开漏输出和推挽输出的区别3、在STM32中选用怎样选择I/O模式STM32F1xx官方资料 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册datasheet)
STM32引脚说明
GPIO是通用输入/输出端口的简称是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。
STM32的大部分引脚除了当GPIO使用之外还可以复用位外设功能引脚比如串口这部分在【STM32】STM32端口复用和重映射AFIO辅助功能时钟 中有详细的介绍。
GPIO种类
本博板子STM32F103ZET6共有7组IO口每组16个共16×7112个分别为 GPIOA——PA0、PA1、PA2…PA15 GPIOB——PB0、PB1、PB2…PB15 . . . GPIOG——PG0、PG1、PG2、…PG15
GPIO基本结构
每个GPIO内部都有这样的一个电路结构这个结构在本文下面会具体介绍。 这边的电路图稍微提一下
保护二极管IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。当引脚电压高于VDD时上方的二极管导通当引脚电压低于VSS时下方的二极管导通防止不正常电压引入芯片导致芯片烧毁。但是尽管如此还是不能直接外接大功率器件须加大功率及隔离电路驱动防止烧坏芯片或者外接器件无法正常工作。P-MOS管和N-MOS管由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。这里的电路会在下面很详细地分析到。TTL肖特基触发器信号经过触发器后模拟信号转化为0和1的数字信号。但是当GPIO引脚作为ADC采集电压的输入通道时用其“模拟输入”功能此时信号不再经过触发器进行TTL电平转换。ADC外设要采集到的原始的模拟信号。
这里需要注意的是在查看《STM32中文参考手册V10》中的GPIO的表格时会看到有“FT”一列这代表着这个GPIO口时兼容3.3V和5V的如果没有标注“FT”就代表着不兼容5V。
GPIO输入输出的8种模式
GPIO支持4种输入模式浮空输入、上拉输入、下拉输入、模拟输入和4种输出模式开漏输出、开漏复用输出、推挽输出、推挽复用输出。同时GPIO还支持三种最大翻转速度2MHz、10MHz、50MHz。
每个I/O口可以自由编程但I/O口寄存器必须按32位字被访问。
程序中标识模式GPIO_Mode_AIN模拟输入GPIO_Mode_IN_FLOATING浮空输入GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入GPIO_Mode_Out_OD开漏输出GPIO_Mode_Out_PP推挽输出GPIO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出下面将具体介绍GPIO的这八种工作方式
上拉输入模式 默认情况下输入引脚数据为1高电平。
上拉输入模式下I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空在无信号输入的情况下输入端的电平保持在高电平自己理解上拉电阻连接电压并且在I/O端口输入为低电平的时候输入端的电平也是低电平自己理解上拉电阻上的电压和端口导通。 施密特触发器施密特就是为了防止在某一个临界电平的情况出现各种情况的抖动出现为了稳定我们的输出而设计的。 施密特触发器采用电位触发方式其状态由输入信号电位维持对于负向递减和正向递增两种不同变化方向的输入信号施密特触发器有不同的阈值电压。 下拉输入模式 默认情况下输入引脚为0低电平。
下拉输入模式下I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空在无信号输入的情况下输入端的电平保持在低电平并且在I/O端口输入为高电平的时候输入端的电平也是高电平。
浮空输入模式 浮空输入模式下I/O端口的电平信号直接进入输入数据寄存器。也就是说I/O的电平状态是不确定的完全由外部输入决定如果在该引脚悬空在无信号输入的情况下读取该端口的电平是不确定的。
通常用于IIC、USART。
模拟输入模式 模拟输入模式下I/O端口的模拟信号电压信号而非电平信号直接模拟输入到片上外设模块比如ADC模块等。模拟信号一般3.3v 5v 9v。
开漏输出模式 可以输出0和1适用于电平不匹配场合要得到高电平需要上拉电阻才行。
开漏输出模式下上拉电阻N-MOS管通过设置位设置/清除寄存器或者输出数据寄存器的值途经N-MOS管最终输出到I/O端口。这里要注意N-MOS管当设置输出的值为高电平的时候N-MOS管处于关闭状态此时I/O端口的电平就不会由输出的高低电平决定而是由I/O端口外部的上拉或者下拉决定当设置输出的值为低电平的时候N-MOS管处于开启状态此时I/O端口的电平就是低电平。同时I/O端口的电平也可以通过输入电路进行读取注意I/O端口的电平不一定是输出的电平。
开漏复用输出模式 开漏复用输出模式与开漏输出模式很是类似。只是输出的高低电平的来源不是让CPU直接写输出数据寄存器取而代之利用片上外设模块的复用功能输出来决定的。
片内外设功能TX1MOSIMISOSCKSS
推挽输出模式 可以输出高低电平0和1适用于双向IO使用。
推挽输出模式下P-MOS管N-MOS管通过设置位设置/清除寄存器或者输出数据寄存器的值途经P-MOS管和N-MOS管最终输出到I/O端口。这里要注意P-MOS管和N-MOS管当设置输出的值为高电平的时候P-MOS管处于开启状态N-MOS管处于关闭状态此时I/O端口的电平就由P-MOS管决定高电平当设置输出的值为低电平的时候P-MOS管处于关闭状态N-MOS管处于开启状态此时I/O端口的电平就由N-MOS管决定低电平。同时I/O端口的电平也可以通过输入电路进行读取注意此时I/O端口的电平一定是输出的电平。
推挽复用输出模式 推挽复用输出模式与推挽输出模式很是类似。只是输出的高低电平的来源不是让CPU直接写输出数据寄存器取而代之利用片上外设模块的复用功能输出来决定的。
片内外设功能IIC的SCL、SDL
模式用途
1、 GPIO_Mode_AIN 模拟输入
一般用于ADC模拟输入
2、GPIO_Mode_IN_FLOATING 浮空输入
可用于按键KEY实验、发送接收信号RX、TX、IIC、USART等不过这些实验可以不用浮空输入如KEY用到上拉和下拉
3、GPIO_Mode_IPD下拉输入
4、GPIO_Mode_IPU上拉输入
IO内部上拉电阻、下拉电组输入使情况而定比如刚刚说的key按键实验原理图如下 可以看到KEY_UP按下后IO口应该是3V3电平输入未按下时为悬空状态而悬空状态IO输入是未知的所以为了防止程序跑飞采用下拉输入在悬空状态下使IO输入下拉到低电平。这样在悬空状态下IO检测到的是低电平不会去执行key_up按下后的程序。
KEY0~2按下后IO口是低电平输入。按下时为悬空状态而悬空状态IO输入是未知的所以为了防止程序跑飞采用上拉输入在悬空状态下使IO输入上拉到高电平。这样在悬空状态下IO检测到的是高电平不会去执行KEY0 ~2按下后的程序。
5、GPIO_Mode_Out_OD开漏输出
IO 输出 0 接 GNDIO 输出 1悬空需要外接上拉电阻才能实现输出高电平。当输出为 1 时IO 口的状态由上拉电阻拉高电平但由于是开漏输出模式这样 IO 口也就可以 由外部电路改变为低电平或不变。该模式适用于电平不匹配场合、适合做电流型的驱动吸收电流能力比较强。
6、GPIO_Mode_Out_PP推挽输出
可以输出高、低电平。导通损耗小、效率高。既提高电路的负载能力又提高开关速度。广泛各种实验比如接下来要总结的LED。
7、GPIO_Mode_AF_OD复用开漏输出
当GPIO为复用IO时的开漏输出模式一般用于外设功能如TX1
8、GPIO_Mode_AF_PP复用推挽输出
当GPIO为复用IO时的推挽输出模式一般用于外设功能如I2C
总结与分析
1、什么是推挽结构和推挽电路
推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。
推挽电路是两个参数相同的三极管或MOSFET以推挽方式存在于电路中各负责正负半周的波形放大任务。电路工作时两只对称的功率开关管每次只有一个导通所以导通损耗小、效率高。输出既可以向负载灌电流也可以从负载抽取电流。推拉式输出级既提高电路的负载能力又提高开关速度。
2、开漏输出和推挽输出的区别 开漏输出只可以输出强低电平高电平得靠外部电阻拉高。输出端相当于三极管的集电极。适合于做电流型的驱动其吸收电流的能力相对强(一般20ma以内)推挽输出:可以输出强高、低电平连接数字器件。
关于推挽输出和开漏输出最后用一幅最简单的图形来概括 该图中左边的便是推挽输出模式其中比较器输出高电平时下面的PNP三极管截止而上面NPN三极管导通输出电平VS当比较器输出低电平时则恰恰相反PNP三极管导通输出和地相连为低电平。右边的则可以理解为开漏输出形式需要接上拉。
3、在STM32中选用怎样选择I/O模式
浮空输入_IN_FLOATING ——浮空输入可以做KEY识别RX1带上拉输入_IPU——IO内部上拉电阻输入带下拉输入_IPD—— IO内部下拉电阻输入模拟输入_AIN ——应用ADC模拟输入或者低功耗下省电开漏输出_OUT_OD ——IO输出0接GNDIO输出1悬空需要外接上拉电阻才能实现输出高电平。当输出为1时IO口的状态由上拉电阻拉高电平但由于是开漏输出模式这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化实现C51的IO双向功能推挽输出_OUT_PP ——IO输出0-接GND IO输出1 -接VCC读输入值是未知的复用功能的推挽输出_AF_PP ——片内外设功能I2C的SCL、SDA复用功能的开漏输出_AF_OD——片内外设功能TX1、MOSI、MISO.SCK.SS