主题中讨论的其他器件: TPS2052B
您好
我正在使用参考的 TM4C1294XL 评估板:C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\uart_echo、uart_echo example 我要连接到 PC 中外部 UART 所有设置都在 term 中完成、但未显示在屏幕上。
我的示例代码:
//*****
//
// uart_echo.c -从 UART 读取数据或向其中写入数据的示例
//中断驱动的方式。
//
//版权所有(c) 2013-2020德州仪器公司。 保留所有权利。
//软件许可协议
//
//德州仪器(TI)提供的此软件仅可用于
//完全专注于 TI 的微控制器产品。 该软件的所有者
// TI 和/或其供应商,受适用的版权保护
//法律。 您不能将此软件与"病毒性"开源软件结合使用
//软件以形成更大的程序。
//
//此软件"按原样"提供,且没有任何缺陷。
//不作任何明示的、默示的或法定的担保、包括但
//不限于对适销性和适用性的暗示保证
//此软件有一个特定的用途。 根据任何条款、TI 不应
//情况,应对特殊的、偶然的或后果性的责任
//损坏,任何原因。
//
//这是 EK-TM4C1294XL 固件包修订版2.2.0.295的一部分。
//
//*****
#包含
#包含
#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"
//*****
//
//! \addtogroup 示例列表
//!
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 (void)
{
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)
//
//闪烁 LED 以显示正在进行的字符传输。
//
MAP_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、GPIO_PIN_0);
//
//延迟1毫秒。 每个 SysCtlDelay 大约为3个时钟。
//
SysCtlDelay (g_ui32SysClock /(1000 * 3));
//
//关闭 LED
//
MAP_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、0);
}
}
//*****
//
//将字符串发送到 UART。
//
//*****
空
UARTSend (const uint8_t * pui8Buffer、uint32_t ui32Count)
{
//
//当有更多字符要发送时循环。
//
while (ui32Count --)
{
//
//将下一个字符写入 UART。
//
MAP_UARTCharPutNonBlocking (UART2_base、* pu8Buffer++);
}
}
//*****
//
//该示例演示了如何将数据字符串发送到 UART。
//
//*****
内部
主函数(空)
{
//
//在120 MHz 处从 PLL 运行。
//注意:SYSCTL_CFG_VCO_240是 TivaWare 2.2.x 和
//稍后以更好地反映由于 SYSCTL#22而导致的实际 VCO 速度。
//
g_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_240)、120000000);
//
//启用用于板载 LED 的 GPIO 端口。
//
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
//
//启用 LED 的 GPIO 引脚(PN0)。
//
MAP_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_0);
//
//启用此示例使用的外设。
//
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_UART2);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
//
//启用处理器中断。
//
Map_IntMasterEnable ();
//
//将 GPIO A0和 A1设置为 UART 引脚。
//
MAP_GPIOPinConfigure (GPIO_PA6_U2RX);
MAP_GPIOPinConfigure (GPIO_PA7_U2TX);
MAP_GPIOPinTypeUART (GPIO_PORTA_BASE、GPIO_PIN_6 | GPIO_PIN_7);
//
//将 UART 配置为115,200、8-N-1运行。
//
MAP_UARTConfigSetExpClk (UART0_BASE、g_ui32SysClock、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 text:"、16);
//
//永久循环通过 UART 回传数据。
//
while (1)
{
}
}