嗨,大家好,
我正在使用一些ISR的UART UART SCB模式VER 3.2并使用下面的代码
UIT8标志=0;
CysISR(UART中断)
{
UIT32源=0;
旗=1;
UARTHUUARTPUSTSHIPE(“nFLAG=1 rn”);
源= uARTHEGETRXBASTUSTORKEASKASKED();
UARTHI CURLRX中断源(源);
UARTHUUARTPTCCHAR(UARTHI UARTEGETCHARE());
/*’结尾’*
}
int()
{
u
tiN 32 CH;
UARTHART START();
UARTHI SCBIIQL SARTEX(UART中断);
//uARTHARRXIISRSARTEXTEX(UART中断);
*通过UART**发送字符串
CyGloalActuabess;/*取消注释此行以启用全局中断。*/
UTARTUAUTARTPT字符串(“R**************************************************************************************************************************************************************************************************************************************************************************************************************************************************
UARTHUUARTPUSTSHIPE(“UART IMAILISIDER RN”);
(;)
{
CH=UARTHI UARTGETHARCH();
If(FLAG=1)
{
旗=0;
CH=UARTHI UARTGETHARCH();
UARTHI UARTARPTCHA(CH);
UARTHUUARTPUSTSHIPE(“nFLAG=0 rn”);
}
}
}
观察:
1。控制不是来自ISR“CysISR(UART中断)”
2。无法清除中断
请帮助
以上来自于百度翻译
以下为原文
Hi all,
I am using some ISR for UART
UART SCB Mode ver 3.2 and using the following code
uint8 flag = 0;
CY_ISR(uartInterrupt)
{
uint32 source = 0;
flag = 1;
UART_UartPutString("nFlag = 1rn");
source = UART_GetRxInterruptSourceMasked();
UART_ClearRxInterruptSource(source);
UART_UartPutChar(UART_UartGetChar());
/* `#END` */
}
int main()
{
uint32 ch;
UART_Start();
UART_SCB_IRQ_StartEx(uartInterrupt);
//UART_RX_ISR_StartEx(uartInterrupt);
/* Transmit string through UART */
CyGlobalIntEnable; /* Uncomment this line to enable global interrupts. */
UART_UartPutString ("rn***********************************************************************************rn");
UART_UartPutString ("UART Initialisedrrn");
for (;;)
{
ch = UART_UartGetChar();
if(flag == 1)
{
flag = 0;
ch = UART_UartGetChar();
UART_UartPutChar(ch);
UART_UartPutString("nFlag = 0rn");
}
}
}
Observation :
1. Control is not coming out from ISR "CY_ISR(uartInterrupt)"
2. Could not able to clear interrupt
Please help