工具/软件:
从先前过流替换 MPU 后、系统节拍中断现在有效。 现在、我尝试让 UART 中断正常工作。 我在 ISR 中设置了一个断点、它从不会出现陷阱。 代码:
Void UartInterrupt ( Void ){
const int Error_Mask = 0x00000F00;
const int Data_Mask = 0x000000FF;
INT IntStatus = UARTIntStatus (UART4_BASE、 对 ); //清除中断。
UARTIntClear (UART4_BASE、IntStatus);
while (! (UART4_FR_R 和 UART_FR_RXFE){ //直到 FIFO 为空、接收字符。
int Data_And_Errors = UART4_DR_R;
int 错误= Data_And_Errors 和 Error_Mask;
U8 字符 = Data_And_Errors 和 Data_Mask;
if(! 错误){UARTCharPut (UART4_BASE、Char);}
}
int 主要 ( Void ){
SysCtlClockSet (SysCtl_SYSDIV_2_5 | SysCtl_XTAL_20MHz | SysCtl_USE_PLL); //应为 80MHz
SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOC);
while (! SysCtlPeripheralReady (SYSCTL_PERIPH_GPIOC)){}
SysCtlPeripheralEnable (SYSCTL_PERIPH_UART4); //启用 UART4 调试端口。
while (! SysCtlPeripheralReady (SYSCTL_PERIPH_UART4)){}
GPIOPinTypeUART (GPIO_PORTC_BASE、PC_DebugRx_bit | PC_DebugTx_bit);
GPIOPinConfigure (GPIO_PC4_U4RX);
GPIOPinConfigure (GPIO_PC5_U4TX);
UARTConfigSetExpClk (UART4_BASE、80000,000,9600、
( UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE );
UARTFIFOEnable (UART4_BASE);
UARTIntRegister (UART4_BASE、UartInterrupt); //寄存器中断处理程序。
UARTIntEnable (UART4_BASE、UART_INT_RX | UART_INT_TX | UART_INT_OE | UART_INT_FE | UART_INT_RT);
IntEnable (INT_UART4);
while ( 对 ){}
}
谢谢、Doug