例如:
初始化USART1中断
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; //****************
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
USART1中断服务函数
void USART1_IRQHandler(void) //USART1中断
{
Uint08 RxdData;
if((USART1->SR & 0x20)&&(UART1_RxNEIE)) //接收中断
{
RxdData=USART_ReceiveData(USART1); //读接收数据
}
if((USART1->SR & 0x80)&&(UART1_TxEIE)) //发送寄存器空中断
{
USART1->DR = 0x55;
/* RxdData=USART1->SR;
if(Txd1_Cnt<Txd1_len)
{
USART1->DR = *Txd1_point++;
Txd1_Cnt++;
}
else
{
USART1->CR1=USART1->CR1 & (~0x80); //禁止USART1的发送缓冲寄存器空中断
}
*/ }
}
语句NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;中的USART1_IRQChannel必须与中断服务函数名对应
|