4.编写MM32F0140 UART1中断接收和中断发送函数: MM32F0140 UART1中断接收和中断发送函数代码如下所示,当UART1中断发送完数据后需失能中断发送,当UART1中断发送数据时再次使能中断发送即可。 - void UART1\_IRQHandler(void)
- {
- u8 Recv;
- if(UART\_GetITStatus(UART1, UART\_IT\_RXIEN) != RESET)
- {
- UART\_ClearITPendingBit(UART1, UART\_IT\_RXIEN);
-
- Recv = UART\_ReceiveData(UART1);
-
- gUART1\_Rx\_Buf[gUART1\_Rx\_Cnt] = Recv;
-
- if(gUART1\_Rx\_Cnt < UART1\_RXD\_LEN-1)
- {
- gUART1\_Rx\_Cnt++;
- }
- else
- {
- gUART1\_Rx\_Cnt = 0;
- }
- if(gUART1\_Rx\_Cnt == 8)
- {
- UART1\_Rx\_Flag = true;
- }
- }
- if(UART\_GetITStatus(UART1, UART\_IT\_TXIEN) != RESET)
- {
- UART\_ClearITPendingBit(UART1, UART\_IT\_TXIEN);
-
- if(gUART1\_Tx\_Real\_Cnt < gUART1\_Tx\_Lenth)
- {
- UART\_SendData(UART1,(u8)gUART1\_Tx\_Buf[gUART1\_Tx\_Real\_Cnt]);
- gUART1\_Tx\_Real\_Cnt++;
- }
- else
- {
- UART\_ITConfig(UART1, UART\_IT\_TXIEN, DISABLE);
- gUART1\_Tx\_OK\_Flag = 1;
- }
- }
- }
|