/*********************************************************************
?* @fn ? ? ?Init_InterruptIO
?*
?* @brief ? 配置外部中斷IO
?*
?* @return ?none
?*********************************************************************/
void Init_InterruptIO(void)
{
? ? GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
? ? GPIOA_ITModeCfg(GPIO_Pin_5, GPIO_ITMode_RiseEdge); // 上升沿中斷檢測(cè)
? ? PFIC_EnableIRQ(GPIO_A_IRQn);
}
/*********************************************************************
?* @fn ? ? ?my_uart1_init
?*
?* @brief ? 調(diào)試串口初始化
?*
?* @return ?none
?*********************************************************************/
void My_uart1_init(void)
{
? ? ? ? /* 配置串口1:先配置IO口模式,再配置串口 */
? ? ? ? GPIOA_SetBits(GPIO_Pin_9);
? ? ? ? GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU); ? ?// RXD-配置上拉輸入
? ? ? ? GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); //TXD-配置推挽輸出
? ? ? ? UART1_DefInit();
? ? ? ? //中斷配置
? ? ? ? UART1_ByteTrigCfg(UART_1BYTE_TRIG);
? ? ? ? UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);
? ? ? ? PFIC_EnableIRQ(UART1_IRQn);
}
/*********************************************************************
?* @fn ? ? ?GPIOA_IRQHandler
?*
?* @brief ? GPIOA中斷函數(shù)
?*
?* @return ?none
?*********************************************************************/
__INTERRUPT
__HIGH_CODE
void GPIOA_IRQHandler(void)
{
? ? GPIOA_ClearITFlagBit(GPIO_Pin_5);
? ? printf("in IQR \r\n");
}
/*********************************************************************
?* @fn ? ? ?main
?*
?* @brief ? 主函數(shù)
?*
?* @return ?none
?*********************************************************************/
int main(void)
{
? ? SetSysClock(CLK_SOURCE_PLL_60MHz);
? ? Init_InterruptIO();
? ? My_uart1_init();
? ? while(1);
? ?
}
目前自己配置以上,但是測(cè)試沒(méi)有效果,不知道IO檢測(cè)中斷還需要配置什么?是否有這方面的例子可以參考?