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.

[参考译文] Tiva C EK-TM4C1294XL LaunchPad 上的 UART7

Guru**** 1832870 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/581145/uart7-on-tiva-c-ek-tm4c1294xl-launchpad

大家好,

我使用的是 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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在代码中没有看到任何明显的东西。 您是如何连接(您使用了什么硬件)以将针脚 PC4和 PC5连接到计算机的? 也许您可以附加一个连接到 RS2323驱动器芯片的原理图、以及从该芯片连接到 PC 上的串行端口(或 USB 转串行电缆)的连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是 Bob 的第二位、怀疑您正在尝试将 TTL 电平通信直接连接到 PC/适配器上的 RS232电平通信...