赞
踩
——I/O口的电平信号直接进入输入数据寄存器 ,此时I/O口的电平状态不确定,由外部输入决定,即引脚悬空时,读取的电平不确定
I/O口内部接入上拉电阻,I/O口默认为高电平,若其输入低电平时,则读取到的就是低电平
I/O口内部接入下拉电阻,I/O口默认为低电平,若其输入高电平时,则读取到的就是高电平
I/O引脚用于ADC采集电压输入时,作为“模拟输入”功能,信号不经过施密特触发器,直接进入ADC外设,不能读取的引脚的电平状态
当GPIO为模拟输入时,内部的上拉、下拉电阻均不起作用,即使配置了也不影响模拟信号的输入输出
开漏输出模式中,仅有N-MOS管工作,若控制输出为低电平 0,则P-MOS管关闭,N-MOS管导通(VSS),使其输出低电平
若控制输出高电平 1,则P-MOS管和N-MOS管都关闭,输出指令不起作用,I/O口电平不由输出的高电平决定,而由外部的上拉或下拉决定,若没有则处于悬空状态,此时施密特触发器打开,读取的I/O口不一定是输出的电平
推挽输出模式中,P-MOS管和N-MOS管都工作,若控制输出低电平 0,则P-MOS管关闭,N-MOS管导通,使其输出低电平;若控制输出高电平 1,则P-MOS管导通,N-MOS管关闭,使其输出高电平。上拉、下拉的作用是控制没有输出时的I/O口电平,此时触发器打开,读取到的I/O口电平就是输出的电平
GPIO复用为其他外设,输出数据寄存器无效,可读取到I/O口实际状态。除了输出信号来源改变(复用功能输出),其他与开漏输出功能相同
GPIO复用为其他外设,输出数据寄存器无效,输出的高电平来源于其他外设,可读取到I/O口实际状态。除了输出信号来源改变(复用功能输出),其他与推挽输出功能相同
void HAL_GPIO_Init(GPIO_Typedef *GPIOx, GPIO_InitTypedef *GPIO_Init);
HAL_GPIO_Init(GPIOC,&GPIO_InitStruct);
GPIO_PinState HAL_GPIO_ReadPin(GPIO_Typedef *GPIOx, uint16_t GPIO_Pin);
HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13);
void HAL_GPIO_WritePin(GPIO_Typedef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
void HAL_GPIO_TogglePin(GPIO_Typedef *GPIOx, uint16_t GPIO_Pin);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_6);
一般用于ledHAL_StatusTypedef HAL_GPIO_LockPin(GPIO_Typedef *GPIOx, uint16_t GPIO_Pin);
HAL_GPIO_LockPin(GPIOA,GPIO_PIN_2);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。