Other Parts Discussed in Thread: MOTORWARE
主题中讨论的其他器件:MOTORWARE
您好!
我正在使用基于 lab01的 motorware Hal 对象、并遵循 Motoware HAL 教程。 我尝试通过2个按钮触发中断、一个连接到 GPIO12、一个连接到 GPIO33/32。
当我在 GPIO12上配置 extInt1时、一切都正常、但是当我将 extInt1更改为 GPIO 33或32时、ISR 似乎每11us 就会被持续触发一次(我将切换 ISR 内部的 LED 以在示波器上进行测量)。
我是否遗漏了什么? 引脚 GPIO33/32是否不用于外部内部功能?
从 hal.c 中提取的配置代码:
void HAL_setupGpios (HAL_Handle handle)
{
//按钮1.
GPIO_setMode (obj->gpioHandle、GPIO_Number_12、GPIO_12_Mode_generalpurpose);
GPIO_setDirection (obj->gpioHandle、GPIO_Number_12、GPIO_Direction_Input);
GPIO_setPullUp (obj->gpioHandle、GPIO_Number_12、GPIO_PULLUP_Disable);
//按钮2.
GPIO_setMode (obj->gpioHandle、GPIO_Number_32、GPIO_32_Mode_generalpurpose);
GPIO_setDirection (obj->gpioHandle、GPIO_Number_32、GPIO_Direction_Input);
GPIO_setPullUp (obj->gpioHandle、GPIO_Number_32、GPIO_PULLUP_Enable);
//用于示波器测量和调试的引脚
GPIO_setMode (obj->gpioHandle、GPIO_Number_33、GPIO_33_Mode_generalpurpose);
GPIO_setLow (obj->gpioHandle、GPIO_Number_33);
GPIO_setDirection (obj->gpioHandle、GPIO_Number_33、GPIO_Direction_Output);
}
void HAL_enableExtInts (HAL_Handle handle)
{
HAL_Obj * obj =(HAL_Obj *)句柄;
// GPIO 上的外部内部1 12.
PI_enableInt (obj->压 电致、PI_GroupNumber_1、PI_InterruptSource_XINT_1);
GPIO_setExtInt (obj->gpioHandle、GPIO_Number_32、CPU_ExtIntNumber_1);
PI_setExtIntPolarity (obj->压 电极、cpu_ExtIntNumber_1、PI_ExtIntPolarity_RisingAndFallingEdge);
PI_enableExtInt (obj->压 电式、cpu_ExtIntNumber_1);
cpu_enableInt (obj->cpuHandle、cpu_IntNumber_1);
返回;
}
谢谢、
David
