赛元芯片 2个GPIO引脚边沿触发 计脉冲数 异常。
本帖最后由 hzocce 于 2025-5-29 17:14 编辑void gpioinit(void)
{
GPIO_Init(GPIO2,GPIO_PIN_3, GPIO_MODE_IN_PU); //
EXTI_SetExtInt2xTriggerMode(INT23, EXTI_TRIGGER_FALL_ONLY);
EXTI_ITConfig(INT2, ENABLE, HIGH); //INT0,//EXTI_ITConfig(INT2, ENABLE, LOW); //INT0,
GPIO_Init(GPIO2,GPIO_PIN_2, GPIO_MODE_IN_PU); //
EXTI_SetExtInt2xTriggerMode(INT22, EXTI_TRIGGER_FALL_ONLY);
EXTI_ITConfig(INT2, ENABLE, HIGH); //INT0,
}
然后在同一中断里面通过查询方式,是否在此引脚? 对么?
void EXTI2Interrupt() interrupt 10
{
if(!GPIO_ReadPin(GPIO2, GPIO_PIN_2))
{
lPulseCount_p22++;
};
if(!GPIO_ReadPin(GPIO2, GPIO_PIN_3))
{
lPulseCount_p23++++;
};
} 其中P22接的是AC电机的霍尔脉冲,P23是另外个电机的霍尔脉冲数。
当P22对应的设备电机没有运行的时候, lPulseCount_p23是准的,但是当P22对应的电机转动起来周,lPulseCount_p23的数值就乱跳了。
求指导 其中P22接的是AC电机的霍尔脉冲,P23是另外个电机的霍尔脉冲数。
当P22对应的设备电机没有运行的时候, lPulseCount_p23是准的,但是当P22对应的电机转动起来周,lPulseCount_p23的数值就乱跳了。
求指导 GPIO 设成高阻,上拉 都 一样,其中一个影响了另外一个。 本帖最后由 dffzh 于 2025-5-30 09:07 编辑
两个GPIO的下降沿中断为什么是在同一个外部中断里处理的呀?不是各有自己的外部中断向量表吗?
本人没用过这款MCU;你这样设计,两个电机在同时工作的时候,估计也会丢脉冲吧。
页:
[1]