本帖最后由 xyz549040622 于 2024-1-5 14:07 编辑
首先我们普及一个概念:串口ECHO
串口ECHO通常指的是串行通信中的回显功能。在计算机网络和串行通信中,ECHO是指当数据在终端和计算机之间发送时,发送的信号会被系统自动发送回原发送终端的一个过程。这允许发送者看到他们输入的数据,并验证数据是否正确无误。
串口通信中,ECHO常常用于调试目的。比如,当你通过串口向一个设备发送命令时,如果ECHO功能开启,该设备会将接收到的命令原样发送回来。这样做的好处是可以让发送者确认命令是否正确接收。如果没有收到回显,发送者可能会知道有些问题发生了,比如连接错误、数据丢失或设备故障等。
在一些交互式的通信场景中,ECHO功能也帮助用户看到他们在终端上键入的字符,特别是在使用命令行接口或远程终端时。例如,在使用PuTTY或其他串口通信工具时,你可以看到自己输入的命令,因为它们被设备回显在屏幕上。
通常,ECHO功能可以通过软件来启用或禁用,取决于具体的应用场景和需求。在某些情况下,为了提高通信效率,可能会关闭回显功能,因为它减少了传输的数据量。
那么下面我们根据官方的例程和我们的需要,进行代码的配置:
#include "ti_msp_dl_config.h"
volatile uint8_t gEchoData = 0;
int main(void)
{
SYSCFG_DL_init();
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);//清除中断标志
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);//使能中断
// DL_SYSCTL_enableSleepOnExit();
while (1) {
__WFI();
}
}
void UART_0_INST_IRQHandler(void)
{
switch (DL_UART_Main_getPendingInterrupt(UART_0_INST)) {
case DL_UART_MAIN_IIDX_RX:
DL_GPIO_togglePins(GPIO_LEDS_PORT,
GPIO_LEDS_USER_LED_1_PIN);//翻转用户LED
gEchoData = DL_UART_Main_receiveData(UART_0_INST);//获取接收到的数据
DL_UART_Main_transmitData(UART_0_INST, gEchoData);//把接收到的数据发送出去
break;
default:
break;
}
}
|