GPIO的输入输出模式及CubeMX的配置方法 |
您所在的位置:网站首页 › 使用库函数实现操作gpio口实验报告 › GPIO的输入输出模式及CubeMX的配置方法 |
GPIO的模式大概分为两种“输出模式”和“输入模式”,下面将着重以上两点对GPIO的功能展开介绍 输出模式一、开漏输出 二、推挽输出 三、GPIO的复用功能 输入模式一、输入浮空 二、输入上拉 三、输入下拉 四、模拟输入 首先介绍什么是推挽输出 如图,在输出驱动器的方框内部存在两个三级管P-MOS管和N-MOS管,在推挽输出过程中寄存器会控制这两个MOS管进行输出。若要GPIO引脚输出高电平,则要进行编程控制寄存器输出逻辑1,此时P-MOS管接通VDD,N-MOS管截止,IO口输出高电平;若要输出低电平,则要控制寄存器输出逻辑0,此时P-MOS管截止,N-MOS管接通GND,IO口输出低电平 推挽输出的优点: 1、输出高低电平与电源电压基本没有压差 2、高低电平驱动能力强,IO口的驱动电流可达20mA 3、电平切换速度快 切记,推挽输出不支持线与,若线与可能会导致单片机损坏。 下面介绍开漏输出模式 还是上图,在开漏输出时P-MOS管是不会导通的,变化的只有N-MOS管。当N-MOS管导通时,IO口连接GND,输出为低电平;当N-MOS管截止时,整条支路处于高阻态。单单开漏模式是无法输出高电平的,只有加上一个上拉电阻,才可输出高电平,此时IO口的输出取决于上拉电阻,当N-MOS管接通时输出为低电平,截止时输出为高电平。 开漏输出的优点是: 1、可实现电平转换,输出电平取决于上拉电阻电源 2、可以实现IO口的线与(简单来说就是多个IO口控制一个元器件,当有一个IO口接地时,元器件就停止工作了) 缺点: 1、高电平驱动能力较差 2、电平的切换速率取决于上拉电阻,电阻越小,切换速率越快 GPIO的复用功能又是怎么回事呢? 复用功能是连接着单片机的内部外设,如PWM,USART,I2C都是通过复用功能来实现的。 下面介绍输入模式 输入模式就没有输出模式那么晦涩难懂了 首先是上拉和下拉输入,如图当IO口处于上拉输入模式时VDD导通,而当IO口处于下拉模式时GND导通,此时单片机会读取IO口的电平状态以此来实现智能控制。 然后是输入浮空,字面意思,就是即不接高电平,也不接低电平。但一般实际运用时,引脚不建议悬空,易受干扰。浮空最大的特点就是电压的不确定性,它可能是0V,页可能是VCC,还可能是介于两者之间的某个值(最有可能) 浮空一般用来做ADC输入用,这样可以减少上下拉电阻对结果的影响。 模拟输入有是怎么回事呢? 模拟输入是指传统方式的输入,数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的 以上便是对GPIO模式的全部讲解,最后拿STM来说一下GPIO的配置方法 基础配置
时钟树配置
输出模式设置 输入模式设置 常用函数 一、HAL_GPIO_ReadPin GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)读取IO口的电平状态,高电平返回值为1,反之则返回值为0 二、HAL_GPIO_WritePin HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)控制IO口的输出状态 三、HAL_GPIO_TogglePin HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)实现IO口电平的反转 四、HAL_GPIO_EXTI_IRQHandler HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)中断回调函数,可以理解为中断函数具体要响应的动作。 以上便是我的个人见解,希望对大家有所帮助 这两个视频可能会给大家更好的理解 https://www.bilibili.com/video/BV1Pr4y1n74J?spm_id_from=333.880.my_history.page.click https://www.bilibili.com/video/BV1zL411L7sj?spm_id_from=333.880.my_history.page.click 都讲的挺好的 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |