大家好,
我使用的是 Tiva C 系列 TM4C1294 Launchpad、我想测试电路板和我的笔记本电脑之间的 UART 通信。
首先、我的笔记本电脑与 TM4C1294 Launchpad 的 UART 0之间的通信已经过测试,运行正常。
我只需要测试 Booster Pack 1中推出的 UART7、此时不会发生这种情况。
我将共享用于检查 UART7的代码。
请告诉我需要对代码进行任何更改
秘书长的报告
#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
//
//
//! \addtogroup example_list
//!
UART 回波(UART_ECHO)
//!
//! 此示例应用利用 UART 来回显文本。 第一个 UART
//! (连接到评估板上的 USB 调试虚拟串行端口)
//! 将配置为115、200波特、8-n-1模式。 接收到的所有字符
//! UART 被发送回 UART。
//
//
//
//
//系统时钟速率,单位为 Hz。
//
//
uint32_t g_ui32SysClock;
//
//
//驱动程序库遇到错误时调用的错误例程。
//
//
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)
{
}
#endif
//
//
// UART 中断处理程序。
//
//
无效
UARTIntHandler (空)
{
uint32_t ui32Status;
//
//获取中断状态。
//
ui32Status = ROM_UARTIntStatus (UART7_BASE、TRUE);
//
//清除已发出的中断。
//
ROM_UARTIntClear (UART7_BASE、ui32Status);
//
//在接收 FIFO 中有字符时循环。
//
while (ROM_UARTCharsAvail (UART7_BASE))
{
//
//从 UART 读取下一个字符并将其写回 UART。
//
ROM_UARTCharPutNonBlocking (UART7_BASE、
ROM_UARTCharGetNonBlocking (UART7_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);
}
}
//
//
//向 UART 发送字符串。
//
//
无效
UARTSend (const uint8_t * pui8缓冲器、uint32_t ui32计数)
{
//
//循环,同时有更多字符要发送。
//
while (ui32Count---)
{
//
//将下一个字符写入 UART。
//
ROM_UARTCharPutNonBlocking (UART7_BASE、* pui8Buffer++);
}
}
//
//
//此示例演示了如何将一串数据发送到 UART。
//
//
内部
main (空)
{
//
//将时钟设置为直接从频率为120MHz 的晶体运行。
//
G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
//
//启用用于板载 LED 的 GPIO 端口。
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
//
//为 LED (PN0)启用 GPIO 引脚。
//
ROM_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_0);
//
//启用此示例使用的外设。
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOC);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART7);
//
//启用处理器中断。
//
ROM_IntMasterEnable();
//
//将 GPIO A0和 A1设置为 UART 引脚。
//
ROM_GPIOPinConfigure (GPIO_PC4_U7RX);
ROM_GPIOPinConfigure (GPIO_PC5_U7TX);
ROM_GPIOPinTypeUART (GPIO_PORTC_BASE、GPIO_PIN_4 |GPIO_PIN_5);
//UARTStdioConfig (7、115200、g_ui32SysClock);
//
//将 UART 配置为115、200、8-N-1操作。
//
ROM_UARTConfigSetExpClk (UART7_BASE、g_ui32SysClock、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
// UARTStdioConfig (7、115200、g_ui32SysClock);
//启用 UART 中断。
//
ROM_IntEnable (INT_UART7);
ROM_UARTIntEnable (UART7_BASE、UART_INT_RX | UART_INT_RT);
//
//提示输入文本。
//
UARTSend ((uint8_t *)"\033[2JEnter 文本:"、16);
//
//循环通过 UART 永久回显数据。
//
while (1)
{
}
}
谢谢、
Chandan