stm32的例子:
void USART1_IRQHandler(void)
{
//发生接收中断
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
{
prvvUARTRxISR();
//清除中断标志位
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
}
//发生完成中断
if(USART_GetITStatus(USART1, USART_IT_TC) == SET)
{
prvvUARTTxReadyISR();
//清除中断标志
USART_ClearITPendingBit(USART1, USART_IT_TC);
}
}
如果140仿写这段代码,是不是这样:
void UART_RDAINT_HANDLE(void)
{
while(UART0->ISR.RDA_IF==1)
{
// xMBPortSerialGetByte("");
prvvUARTRxISR();
}
}
void UART_THREINT_HANDLE(void)
{
while(UART0->ISR.THRE_IF==1)
{
// xMBPortSerialPutByte(NULL);
prvvUARTTxReadyISR();
}
}
还是另外需要清中断标志位呢?怎么清?
|