主题中讨论的其他器件: ADS1243
你(们)好
我使用 TM4C1294NCPDT 设计了自己的电路板。
我已经检查了 UART0、UART2和 UART4中断、它们工作正常。
但我遇到了 UART3问题。 程序卡在 uart3_init 函数中。
INIT 函数和中断处理程序函数与其他有效 UART 相同
功能如下:
//
void uart3_init (uint32_t ui32SysClock)
{
//
// PJ0-1用于 UART3。
//
ROM_GPIOPinConfigure (GPIO_PJ0_U3RX);
ROM_GPIOPinConfigure (GPIO_PJ1_U3TX);
ROM_GPIOPinTypeUART (GPIO_PORTJ_BASE、GPIO_PIN_0 | GPIO_PIN_1);
//已启用 GPIO 端口 D
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART3);
//
//将 UART 配置为115、200、8-N-1操作。
//
ROM_UARTConfigSetExpClk (UART3_base、ui32SysClock、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//
//启用 UART 中断。
//
ROM_IntEnable (INT_UART3);
ROM_UARTIntEnable (UART3_base、UART_INT_RX | UART_INT_RT);
}
//
void uart4_init (uint32_t ui32SysClock)
{
//
// PA2-3用于 UART4。
//
ROM_GPIOPinConfigure (GPIO_PA2_U4RX);
ROM_GPIOPinConfigure (GPIO_PA3_U4TX);
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_2 | GPIO_PIN_3);
//已启用 GPIO 端口 A
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART4);
//
//将 UART 配置为115、200、8-N-1操作。
//
ROM_UARTConfigSetExpClk (UART4_base、ui32SysClock、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//
//启用 UART 中断。
//
ROM_IntEnable (INT_UART4);
ROM_UARTIntEnable (UART4_base、UART_INT_RX | UART_INT_RT);
}
//
// UART3中断处理程序。
空 UART3IntHandler (空)
{
uint32_t ui32Status;
//
//获取中断状态。
//
ui32Status = ROM_UARTIntStatus (UART3_base、true);
//
//清除已发出的中断。
//
ROM_UARTIntClear (UART3_base、ui32Status);
//
//在接收 FIFO 中有字符时循环。
//
while (ROM_UARTCharsAvail (UART3_base))
{
//
//从 UART3读取字符并将其写入 UART4。
//
ROM_UARTCharPutNonBlocking (UART4_base、UARTCharGetNonBlocking (UART3_base));
}
}
//
// UART4中断处理程序。
空 UART4IntHandler (空)
{
uint32_t ui32Status;
//
//获取中断状态。
//
ui32Status = ROM_UARTIntStatus (UART4_base、true);
//
//清除已发出的中断。
//
ROM_UARTIntClear (UART4_base、ui32Status);
//
//在接收 FIFO 中有字符时循环。
//
while (ROM_UARTCharsAvail (UART4_base))
{
//
//从 UART4读取下一个字符并将其写回 UART4。
//
ROM_UARTCharPutNonBlocking (UART4_base、UARTCharGetNonBlocking (UART4_base));
}
}
//
int main (空)
{
uint32_t ui32User0、ui32User1、ui32AnePos、ui32Color;
uint8_t pui8MACArray[8]、i;
tRectangle sRect;
//
//从 PLL 以120MHz 运行。
//
G_ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
//
//配置器件引脚。
//
init_pinconfig();
delay_ms (10);
uart0_init (g_ui32SysClock);
uart2_init (g_ui32SysClock);
uart3_init (g_ui32SysClock);
uart4_init (g_ui32SysClock);
while (1)
{
}
}
//
此外,我还在 init_pinconfig()函数中初始化了所需的 UART 外设。
是否有人可以帮助解决 UART3通信问题?