这是我个人总结的GPIO各种配置模式,还请大佬们看一下是否有差错,请大佬们斧正。 输入模式: GPIO输入模式是指将GPIO引脚配置为接收外部信号的状态。在输入模式下,引脚可以读取外部设备 的电平状态(高电平或低电平),并将其转换为单片机内部可以识别的数字信号。 输出模式:GPIO输出模式是指将GPIO引脚配置为输出数字信号的状态。在输出模式下,单片机可以控制引脚输出高电平或低电平信号,从而控制外部设备 的工作状态。 1. 输入浮空输入浮空是指GPIO引脚没有连接到任何外部电路,既没有上拉也没有下拉,当没有外部信号产生时其状态不确定,当有外部信号产生时电平由外部信号决定。 2. 输入上拉定义:输入上拉是指GPIO引脚内部连接了一个上拉电阻到电源电压。 设计原因:确保在没有外部信号驱动时,引脚保持高电平状态,减少噪声和干扰的影响。 作用:用于确保在无信号或弱信号输入时,引脚不会处于不确定状态,提高信号的抗干扰能力。 (P:相比较浮空模式,当外接电阻过大时,可能存在弱上拉,输出高电平能力不够。) 3. 输入下拉定义:输入下拉是指GPIO引脚内部连接了一个下拉电阻到地。 设计原因:确保在没有外部信号驱动时,引脚保持低电平状态,减少噪声和干扰的影响。 作用:用于确保在无信号或弱信号输入时,引脚不会处于不确定状态,提高信号的抗干扰能力。 (P:相比较浮空模式,当外接电阻过大时,可能存在弱下拉,输出低电平能力不够。) 4. 模拟输入模拟输入是指能够接收连续变化的模拟信号的输入端口。这些信号可以是电压、电流或其他形式的物理量。模拟输入通常需要一个放大器或前置放大器来放大和调理信号,以便于后续电路进行处理。 5. 开漏输出定义:开漏输出是指GPIO引脚只能输出低电平或处于高阻态(既不是高电平也不是低电平,而是一种特殊的中间状态),不能直接输出高电平。 设计:通过使用NMOS晶体管,当晶体管导通时,引脚连接到地;当晶体管截止时,引脚处于高阻态。 设计原因:允许多个开漏输出引脚连接到同一线上,实现线与功能。 作用:用于需要多个信号源共同控制一条线的场景,或者需要外部上拉电阻来决定高电平的场合。(当多个信号源控制,只有由一个设备输出低电平,这条总线就输出低电平。) 上升沿延时:开漏输出由于需要外部上拉电阻来产生高电平,因此会引入上升沿延时。延时的大小取决于上拉电阻的阻值。 功耗问题:当上拉电阻选择小阻值时,虽然可以减小上升沿延时,但会增加功耗。反之,选择大阻值时,虽然功耗降低,但延时增加。 输出能力受限:开漏输出的输出能力相对较弱,特别是当负载消耗电流较大时,可能需要额外的驱动电路来增强输出能力。 6. 推挽式输出定义:推挽式输出是指GPIO引脚能够直接输出高电平和低电平。 设计:通过使用一个NPN晶体管和一个PNP晶体管,分别用于输出低电平和 高电平。 设计原因:提供足够的电流来直接驱动负载,无需外部上拉或下拉。 作用:用于直接驱动LED、继电器、马达等负载。 信号源冲突:当有多个信号源,并且信号源输出的电平本系统则会导致电路短路。 7. 推挽式复用功能定义:推挽式复用功能是指GPIO引脚可以在不同的功能之间切换,如输入、输出或其他特定功能。 设计:通过内部多路复用器(MUX)来选择引脚的功能。 设计原因:为了节省引脚数量,提高IC的集成度。 作用:允许单个引脚执行多个任务,减少硬件资源的使用。 8. 开漏复用功能定义:开漏复用功能是指GPIO引脚可以在开漏输出和其他功能之间切换。 设计:与推挽式复用类似,但输出部分使用开漏结构。 为什么这样设计:为了在需要多个信号源共同控制一条线时,还能实现引脚功能的复用。 作用:允许引脚在开漏输出和其他功能(如输入、模拟输入等)之间灵活切换。 |
很不錯的分享 |
单次ADC采样出现两次进入DMA中断的异常情况,救救孩子吧o(╥﹏╥)o
上电或者复位时IO的状态不对
我的也是cubeMX的myST账号登陆不上,搞到夜里12点,都崩溃了
STM32F103做从站 上电过程,上位机不断发送数据造成,通讯失败,请大侠指导一下
stm32f105 串口数据丢失
STM32F107的USART2进不了中断
stm32f103c8t6:没有对flash进行任何操作,flash的内容发生变化了。具体是哪些原因?如何调试排查原因。
STM32CubeMX 使用"FW_F1 V1.8.6"生成FreeRTOS代码缺少"freertos_mpool.h"?
各位大佬,同样的C代码执行结果不同的问题?
请教关于CAN同时支持OBDII和J1939的问题