TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2642R: CC2642R1串口配置后,RX引脚在接收数据时依旧为低电平(通过逻辑分析仪查看)导致无法进入接收回调函数

Part Number:CC2642ROther Parts Discussed in Thread:SYSCONFIG

串口配置界面

程序代码

int uarttree = 0;

static void writeCallback(UART_Handle handle, void *rxBuf, size_t size)
{// Do nothinguarttree ++;
}

static void readCallback(UART_Handle handle, void *rxBuf, size_t size)
{uarttree ++;
}

void fp_init(void)
{UART_Handle handle;UART_Params params;// GPIO_setConfig(CONFIG_GPIO_FP_TX,GPIO_CFG_INT_ENABLE);// GPIO_setConfig(CONFIG_GPIO_FP_RX,GPIO_CFG_INT_ENABLE);/* 相关串口初始化 */params.baudRate= 115200;// params.writeMode= UART_MODE_CALLBACK;// params.writeDataMode = UART_DATA_BINARY;// params.writeCallback = writeCallback;params.readMode= UART_MODE_CALLBACK;// params.readDataMode  = UART_DATA_BINARY;params.readCallback  = readCallback;UART_init();UART_Params_init(&params);handle = UART_open(CONFIG_FP_UART, &params);
	UART_write(handle, "hello", 5);
	// UART_read(handle, rxBuf, 16);

初始化
{...GPIO_init();//From thisfp_init();...
}

Galaxy Yue:

首先,在你的sysconfig配置中,前面设置的interrupt priority是3,但是最后在gpio 写的是4,一般是一致的

其次,UART_Params_init(&params);

放在第20行-第21行之间试试(放在参数之前)

还有,你的sysconfig中RX 的配置中,是while not use时,你设置的是pull up,

你的RX在接收数据时应该是use的时候吧?

你的串口收发消息正常吗?这个用来排除连线问题

,

viys:

使用

“`

UART_init(); UART_Params_init(&params);

“`

后RX就是 use状态么?

串口相关连线用电表打过,是正常的,串口工具也正常.

优先级和“` UART_init();UART_Params_init(&params); “`放在了参数之前依旧不行

,

viys:

您那里有这样的问题么,而且串口接收中断我希望使用一些中断的state,例如空闲中断,正常的接收中断等

,

Galaxy Yue:

初始化是初始化UART模块和UART参数结构体,不对GPIO引脚进行配置或使用

使用GPIO_setConfig设置为UART模式,

https://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos/2_20_00_06/exports/tirtos_full_2_20_00_06/products/tidrivers_full_2_20_00_08/docs/doxygen/html/_g_p_i_o_8h.html#ae13b9ae70c5d2993d1ac932a91c1f1fa

,

viys:

抱歉,我并未找到GPIO相关的UART的模式

,

Galaxy Yue:

1.UART RX 引脚在不使用时配置为下拉输入引脚

2.

uart_init(void)
初始化驱动程序。该函数只能调用一次,且必须在调用其他驱动程序 API 之前调用

3.麻烦你按照这个示例跑一下,看看操作台的回显数值

https://dev.ti.com/tirex/explore/node?node=A__AMtaeblwFe6YHkWqopWzeQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

目标回显在串行会话中键入的任何字符。

,

Galaxy Yue:

言重了 我再确认一下 这个起用方式 

,

viys:

低电平问题已经解决了,程序中有一块对该引脚进行了去初始化.

目前依然存在的问题是串口中断,串口工具给RX引脚发送消息,串口接收回调函数并不会被调用,当且仅当调用uart_read()时才可进入.

我目前的情况类似于这篇“`[参考译文] RTOS/CC2642R:UART 回调模式不工作 – Bluetooth®︎(参考译文帖)(Read Only) – Bluetooth®︎(参考译文帖) – E2ETm 设计支持 (ti.com)“`

我希望当有数据来临时可以通过外部中断进入接收回调函数,arm架构的芯片都是有相关中断的,但我并未在ti相关资料中找到.

,

Galaxy Yue:

在SDK中的例程有GPIO interrupt 你可以参考一下

这个是别人的使用方式

https://blog.csdn.net/hero_8255/article/details/124097328

这个是在SDK中的文档

https://dev.ti.com/tirex/explore/node?node=A__AOHV4naYDS2cRtk6sG5VHA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

这个是academic 

https://dev.ti.com/tirex/explore/node?node=A__AKDtvdIAjKxrGD6Mk2e2bg__com.ti.SIMPLELINK_ACADEMY_CC2640R2SDK__7unKOT8__LATEST

顺序 321

赞(0)
未经允许不得转载:TI中文支持网 » CC2642R: CC2642R1串口配置后,RX引脚在接收数据时依旧为低电平(通过逻辑分析仪查看)导致无法进入接收回调函数
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1