最近看到新的读取GPIO状态引脚状态的代码
伪代码如图:
优势:读取消抖前第一次的GPIO状态,与引脚先前状态进行对比;如果电平状态一致则跳过延时消抖的流程,可以节约时间,减少裸机工作循环一轮所用时间
static u8 ReadIOPort(GPIO_TypeDef* GPIOx, u16 PortNum, u8 prePortStatus)
{
if(0x00 == prePortStatus)
{
if(0x00 == GPIO_ReadInputDataBit(GPIOx, PortNum))
{
delay_us(100);
if(0x00 == GPIO_ReadInputDataBit(GPIOx, PortNum))
{
return 0;
}
}
return 1;
}
else
{
if(0x00 != GPIO_ReadInputDataBit(GPIOx, PortNum))
{
delay_us(100);
if(0x00 != GPIO_ReadInputDataBit(GPIOx, PortNum))
{
return 1;
}
}
return 0;
}
}
标签:PortNum,ReadInputDataBit,GPIOx,0x00,return,STM32,代码优化,GPIO
From: https://blog.csdn.net/m0_52856052/article/details/139070626