This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我希望大家都好。
我正在 Code Composer Studio 版本12.0.0.00009中测试 TivaWare_C_Series-2.2.0.295 UART Echo 示例。 我已针对 EK-TM4C123GXL 上的 UART 0成功测试了此示例。 现在、我已经更改 了 EK-TM4C123GXL 上 UART 2的此示例。 我已将 EK-TM4C123GXL PD6 UART2Rx 连接到 USB-TTL Tx 引脚、 将 EK-TM4C123GXL PD7 UART2Tx 连接 到 USB-TTL Rx。
在我的计算机串行监视器测试屏幕上、我接收到来自 EK-TM4C123GXL 的字符串"Enter Text (输入文本)"。 但是当我按键盘键时、该字符不会回显。 代码如下所示。 请指导问题所在。 提前感谢您。
此致
阿西姆
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)
{
}
#endif
//
//
// UART 中断处理程序。
//
//
无效
UARTIntHandler (空)
{
uint32_t ui32Status;
//
//获取中断状态。
//
ui32Status = MAP_UARTIntStatus (UART2_base、true);
//
//清除已发出的中断。
//
MAP_UARTIntClear (UART2_base、ui32Status);
//
//在接收 FIFO 中有字符时循环。
//
while (MAP_UARTCharsAvail (UART2_base))
{
//
//从 UART 读取下一个字符并将其写回 UART。
//
MAP_UARTCharPutNonBlocking (UART2_base、MAP_UARTCharGetNonBlocking (UART2_base));
}
}
//
//
//向 UART 发送字符串。
//
//
无效
UARTSend (const uint8_t * pui8缓冲器、uint32_t ui32计数)
{
//
//循环,同时有更多字符要发送。
//
while (ui32Count---)
{
//
//将下一个字符写入 UART。
//
MAP_UARTCharPutNonBlocking (UART2_base、* pui8Buffer++);
}
}
//
//
//此示例演示了如何将一串数据发送到 UART。
//
//
内部
main (空)
{
//
//为中断处理程序启用怠惰堆栈。 这允许使用浮点
//在中断处理程序中使用的指令,但代价是
//额外的堆栈用法。
//
MAP_FPUEnable();
MAP_FULazyStackingEnable();
//
//启用此示例使用的外设。
//
MAP_SysCtlPeripheralDisable (SYSCTL_Periph_GPIOD);
MAP_SysCtlPeripheralReset (SYSCTL_Periph_GPIOD);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
while (!map_SysCtlPeripheralReady (SYSCTL_Periph_GPIOD))
{
}
从 JTAG 操作中//解锁 D7引脚
HWREG (GPIO_PORTD_BASE_GPIO_O_O_LOCK)= GPIO_LOCK_KEY;
HWREG (GPIO_PORTD_BASE_GPIO_O_O_CR)|= GPIO_PIN_7;
MAP_SysCtlPeripheralDisable (SYSCTL_Periph_UART2);
MAP_SysCtlPeripheralReset (SYSCTL_Periph_UART2);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_UART2);
//等待 UART2模块准备就绪
while (!map_SysCtlPeripheralReady (SYSCTL_Periph_UART2))
{
}
MAP_SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHz);
//
//启用处理器中断。
//
MAP_IntMasterEnable();
//
//将 GPIO D6和 D7设置为 UART 引脚。
//
GPIOPinConfigure (GPIO_PD6_U2RX);
GPIOPinConfigure (GPIO_PD7_U2TX);
MAP_GPIOPinTypeUART (GPIO_PORTD_BASE、GPIO_PIN_6 | GPIO_PIN_7);
//
//将 UART 配置为115、200、8-N-1操作。
//
MAP_UARTConfigSetExpClk (UART2_base、MAP_SysCtlClockGet ()、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//
//启用 UART 中断。
//
MAP_IntEnable (INT_UART2);
MAP_UARTIntEnable (UART2_base、UART_INT_RX | UART_INT_RT);
//提示输入文本。
UARTSend ((uint8_t *)"\033[2JEnter 文本:"、16);//AZUARTSend ((uint8_t *)"\033[2JEnter 文本:"、16);
//
//循环通过 UART 永久回显数据。
//
while (1)
{
}
}
您好!
映射 UART2中断处理程序的 STARTUP_CCS.c 中的中断矢量已解决问题。
谢谢。