首先看一下这个寄存器的 配置。
在代码中的配置过程
//配置中断滤波
GPIO_ConfigFilter(CW_GPIOA, bv1, GPIO_FLTCLK_RC150K);
查看一下配置函数
//=============================================================================
//配置端口滤波
// FltClk 只能是宏定义中定义的参数
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] 配置端口滤波
*
* @param GPIOx 参数为下列参数之一:
* [url=home.php?mod=space&uid=2817080]@ARG[/url] CW_GPIOA CW_GPIOB CW_GPIOC CW_GPIOF
* @param GPIO_Pins
* @param FltClk 只能是宏定义中定义的参数 GPIO_FLTCLK_xxx
*/
void GPIO_ConfigFilter( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pins, uint32_t FltClk )
{
GPIOx->FILTER = FltClk | GPIO_Pins;
}
响应的代码
void GPIOA_IRQHandlerCallback(void)
{
if (CW_GPIOA->ISR_f.PIN1)
{
GPIOA_INTFLAG_CLR(bv1);
PB09_TOG();
}
if (CW_GPIOA->ISR_f.PIN2)
{
GPIOA_INTFLAG_CLR(bv2);
PB08_TOG();
}
}
|