我正在尝试发送 uart4中断
我已初始化 uart4,但没有获得传输中断
我的上述代码如下所示:
//--------------------------------------------------------------
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
// UART 初始化
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
void UART_init (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_UART4);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA2_U4RX);
GPIOPinConfigure (GPIO_PA3_U4TX);
GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_2 | GPIO_PIN_3);
UARTConfigSetExpClk (UART4_base、ui32SysClock、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
IntEnable (INT_UART4);
UARTIntEnable (UART4_base、UART_INT_TX);
}
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
// UART 4中断
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
空 UART4_IntHandler (空)
{
uint32_t ui32Status;
ui32Status = UARTIntStatus (UART4_base、true);
UARTIntClear (UART4_base、ui32Status);
IF (ui32Status 和 UART_INT_RX)
{
while (UARTCharsAvail (UART4_base))
{
COMM[COMM_232].RxD_TIMEOUT_CNT = 0;
COMM[COMM_232].RxD_BUF[COMM[COMM_232].RxD_BUF_PTR]= UARTCharGetNonBlocking (UART4_base);
if (++COMM[COMM_232].RxD_BUF_PTR >= 100) COMM[COMM_232].RxD_BUF_PTR = 0;
}
}
否则、IF (ui32Status 和 UART_INT_TX)
{
while (UARTSpaceAvail (UART4_base))
{
if (COMM[COMM_232].TXD_BUF_PTR > COMM[COMM_232].TXD_END_PTR)
{
COMM[COMM_232].TXD_BUF_PTR = 0;
UARTIntDisable (UART4_base、UART_INT_TX);
UARTIntEnable (UART4_base、UART_INT_RX);
}
其他 UARTCharPutNonBlocking (UART4_base、COMM[COMM_232].TXD_BUF[COMM[COMM_232].TXD_BUF_PTR+]);
}
}
}
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//主函
//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
int main (空)
{
ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、20000000);
UART_INIT();
COMM[COMM_232].TXD_BUF[0]= 0x1;
COMM[COMM_232].TXD_BUF[1]= 0x3;
COMM[COMM_232].TXD_BUF[2]= 0x0;
COMM[COMM_232].TXD_BUF[3]= 0x0;
COMM[COMM_232].TXD_BUF[4]= 0x0;
COMM[COMM_232].TXD_BUF[5]= 0xA;
COMM[COMM_232].TXD_BUF[6]= 0x9d;
COMM[COMM_232].TXD_BUF[7]= 0xD1;
COMM[COMM_232].TXD_END_PTR = 7;
COMM[COMM_232].TXD_BUF_PTR = 0;
//UARTCharPutNonBlocking (UART4_base、COMM[COMM_232].TXD_BUF[COMM_232].TXD_BUF_PTR++);
UARTCharPut (UART4_base、COMM[COMM_232].TXD_BUF[COMM[COMM_232].TXD_BUF_PTR+]);
while (1)
{
}
}
//--------------------------------------------------------------
我不确定我会出现什么问题。 需要认真的帮助。
-卡尔斯