WCH沁恒单片机
直播中

北冥有熊

8年用户 882经验值
擅长:131594
私信 关注
[问答]

CH573的中断一旦接低电平程序就不运行了怎么解决?

看了一下好像没有中断的例程,在pm里面看到一个,然后我就改了我用的PA12引脚,虽然配了上拉,但是量了下只有1.5V左右,而且一旦接低电平程序好像就不运行了。我有一个串口1s输出一次的,这里接低电平就一直不会输出了,我的中断也不是电平中断啊。

#define SENSOR_PIN GPIO_Pin_12
void Set_Sensor_State(uint8_t Enable)
{
if(Enable == 1)
{
GPIOA_ModeCfg( SENSOR_PIN, GPIO_ModeIN_PU );
GPIOA_ITModeCfg( SENSOR_PIN, GPIO_ITMode_FallEdge ); // 下降沿唤醒
GPIOA_ClearITFlagBit( SENSOR_PIN );
PFIC_EnableIRQ( GPIO_A_IRQn );
}
else
{
PFIC_DisableIRQ( GPIO_A_IRQn );
}
}
extern uint16_t Blink_Delay;
uint16_t Blink[2] = {500,1600},i = 0;
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOA_IRQHandler( void )
{
if(GPIOA_ReadITFlagBit(SENSOR_PIN) == 1)
{
GPIOA_ClearITFlagBit( SENSOR_PIN );
//中断处理函数
Blink_Delay = Blink[!i];
}
}

回帖(1)

王蓓

2022-9-1 09:48:33
GPIOA_ReadITFlagBit 的实现原型是  (R16_PA_INT_IF&(pin))
这意味着, 如果判断某个pin中断有效 等于1 是不合适的,


你上面的程序 无论如何都不会等于1,以至于中断没有清, 一直卡在中断里.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分