工具与软件:
您好、E2E 专家、
你好。
我正在尝试使用 UART 向 TI CC 1312R1发送一条消息。 我从 uart2echo.c 开始、写入似乎有效。 在读取方面,设备会阻止 UART2_READ()函数。 增加了一个开关
uartParams.readMode = UART2_Mode_Blocking;
它不会再阻塞、但即使进入引脚的是连续数据、也不会填充缓冲器。
我对引脚配置进行了三次检查(如果我使用的电线不起作用)、然后通过数小时的论坛搜索找到解决方案。
中的代码基于 part2echo 示例。
#include
#include
#include
#include
/*驱动程序头文件*/
#include
#include
/*驱动程序配置*/
#include "TI_DRIVERS_CONFIG.h"
/*
*==== mainThread ====
*/
空洞 * mainThread ( 空洞 * arg0)
{
字符 有效载荷[30];
UART2_Handle UART;
UART2_Params uartParams ;
size_t bytesRead;
size_t bytesWriten = 0;
uint32_t status = UART2_STATUS_SUCCESS;
/*调用驱动程序 初始化 函数*/
GPIO_init ();
/*配置 LED 引脚*/
GPIO_setConfig (CONFIG_GPIO_GLED、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig (CONFIG_GPIO_RLED、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
/*创建一个 UART、其中默认的读写模式处于阻塞*/
UART2_Params_init (&uartParams);
uartParams.baudrate = 115200;
uartParams.writeMode = UART2_Mode_Blocking;
uartParams.readMode = UART2_Mode_Blocking;
uartParams.dataLength = UART2_DataLen_8;
uartParams.stopbits = UART2_STOPBITS_1;
uartParams.parityType = UART2_Parity_none ;
UART= UART2_OPEN (CONFIG_UART2_0、&uartParams);
如果 (UART = NULL)
{
GPIO_TOGGLE (CONFIG_GPIO_RLED);
/* UART2_open()失败*/
while (1){}
}
UART2_rxEnable (UART);
/*打开用户 LED 以指示初始化成功*/
常量 字符 就绪[]="ready\n" ;
UART2_WRITE (UART、READY、 大小 (就绪)、NULL);
/*循环永远回显*/
while (1)
{
memset (有效载荷、0、30);
状态= UART2_READ (UART、有效载荷、 大小 (有效载荷)、NULL);
如果 (status!= UART2_STATUS_SUCCESS){
GPIO_TOGGLE (CONFIG_GPIO_RLED);
}
GPIO_TOGGLE (CONFIG_GPIO_GLED);
UART2_WRITE (UART、有效载荷、 大小 (有效载荷)、NULL);
睡眠 (1);
}
}
如果有任何帮助、将不胜感激。
此致、
TICSC