大家好、我正在尝试将 UART5接收中断与 tm4c1294xl launchpad 板一起使用、但由于 ISR 未被调用、我的代码是 bellow、因此我遇到了问题
#include #include #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/interrupt.h" #include "driverlib/pin_map.h" #include "driverlib/sysctl.h" #include "driverlib/uart.h"(nidrupt_unchemp32*)/uidt/uidt_unchemp32*(nvoid /*启用外设*/ SysCtlPeripheralEnable (SYSCTL_Periph_UART5); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOC); /*设置引脚*/ GPIOPinConfigure (GPIO_PC6_U5RX); GPIOPinConfigure (GPIO_PC7_U5TX); GPIOPinTypeUART (GPIO_PORTC_BASE、GPIO_PIN_6 | GPIO_PIN_7); /*UART 配置*/ UARTConfigSetExpClk (UART5_BASE、SYSTEM_CLOCK、115200、 (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE); /*启用 UART 中断*/ IntEnable (INT_UART5); UARTIntEnable (UART5_BASE、(UART_INT_RX | UART_INT_RT); /*注册 UART ISR*/ IntRegister (INT_UART5、pfnHandler); } /*用于 uart5接收或接收超时中断的 ISR */ void UARTIntHandler (void) { uint32_t ui32Status; // //获取中断状态。 // ui32Status = UARTIntStatus (UART5_BASE、TRUE); // //清除已发出的中断。 // UARTIntClear (UART5_BASE、ui32Status); // //在接收 FIFO 中有字符时循环。 // while (UARTCharsAvail (UART5_BASE)) { // //从 UART 读取下一个字符并将其写回 UART。 // UARTCharPutNonBlocking (UART5_BASE、UARTCharGetNonBlocking (UART5_BASE)); // //闪烁 LED 以显示字符传输正在发生。 // GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、GPIO_PIN_0); // //延迟1毫秒。 每个 SysCtlDelay 大约为3个时钟。 // SysCtlDelay (g_ui32SysClock /(1000 * 3)); // //关闭 LED // GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、0); } } int main (void){ /*将时钟设置为以120MHz 运行*/ G_ui32SysClock= SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000); /*Start string*/ uint8_t * cThisChar ="正在启动..."; /*仅用于验证的板载 LED */ SysCtlPeripheralEnable (SYSCTL_Periph_GPION); GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_0); GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、0x00); /*启用处理器中断*/ IntMasterEnable(); /*串行配置*/ init_serial (g_ui32SysClock、UARTIntHandler); /*发送初始字符串*/ while (* cThisChar!='\0'){ UARTCharPutNonBlocking (UART5_BASE、* cThisChar++); } while (1){ /*等待中断*/ } /*无错误*/ 返回0; }
代码没有错误、但当我向电路板发送某个数据时、不会触发接收中断。