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

CC2650 simpleBLEPeripheral工程下添加串口处理(非NPI),写好串口初始化以及接收回调,但无法进入接收回调处理函数。

UART_Params_init(&params);
     params.baudRate      = 9600;
     params.writeDataMode = UART_DATA_BINARY;
     params.readMode      = UART_MODE_CALLBACK;     
     params.readDataMode  = UART_DATA_BINARY;
     params.readCallback  = readCallback;
      // Open the UART and initiate the first read
     handle = UART_open(Board_UART, &params);

static void readCallback(UART_Handle handle, void *rxBuf, size_t size) {
   UART_write(handle, "Uart is receiving", 20);
     // Copy bytes from RX buffer to TX buffer   
   for(size_t i = 0; i < size; i++)   
       txBuf[i] = ((uint8_t*)rxBuf)[i];
     // Echo the bytes received back to transmitter
     UART_write(handle, txBuf, size);

     // Start another read, with size the same as it was during first call to
     // UART_read()
     UART_read(handle, rxBuf, wantedRxBytes);
  } 

代码如上,请问该如何修改?  请TI的工程师帮忙介绍下串口添加的说明。pdf里面只是简单描述了开启串口的步骤。

Yan:

JinWei,

不清楚你具体的需求是什么,但是你应该可以参考一下下面的文档,这个对你了解UART的驱动结构会有帮助:

file:///C:/TI/tirtos_simplelink_2_11_01_09/docs/doxygen/html/_u_a_r_t_8h.html

这是在你的TIRTOS的安装目录下面,你装过SDK的话应该自动安装好了。

JinWei Qian:

回复 Yan:

Hi Yan,

我的需求如下:

1.如我代码中所示,在simpleBLEPeripheral.c中添加完#include <ti/drivers/UART.h> //For UART application之后开启串口,并将串口Read设置为callback的模式。

在我的帖子中我的串口回调函数也有贴出。  在编译下载完代码之后,调用串口write打印一段字符是没有问题的,而向CC2650发送一串数据时候,串口并没有进入串口回调。所以,我就是想知道串口回调那块配置是否正确。或者使用回调模式是否需要注意其他的事项。

2.关于你在回复中提到的那个串口使用说明 我已经看过,但是将说明中的回调Read代码移植到协议栈中时我不知道该如何操作,还需要在main.c里面创建任务吗 ?

haibin deng:

回复 Yan:

你好!

我也在移植UART串口,请看附件,测试结果UART的功能都是可以的,就是不能进入睡眠,

测试发现是因为在NPI_InitInterface()函数中调用了该NPI_uartRead();函数,屏蔽NPI_uartRead功耗正常但是读功能没有了,请问怎么解决,

你们有没有功耗正常的UART例程,谢谢!

Sum:

回复 JinWei Qian:

后续结果怎么样?

Barbara Wu:

回复 haibin deng:

Hi Habin,

如果不调用UART_read函数功耗是正常的,因为UART_read会使UART口一直处在读的状态,所以不进入休眠是正常的

你可以要么在有UART口数据需要读取的时候再打开UART_read,或者使用SCS里面的串口通讯

haibin deng:

回复 Barbara Wu:

Hi  WBJ

串口问题算解决了一半,利用2.0的SDK功耗可以下来了,参照HostTest这个工程改的,但是透传速率才1.2KB/S。

1:我现在想弄ANCS,可是按照2540的配置方法在2640上面是失败的:。

2:还有就是AD转换有没有例程,可以参考,现在无从下手。

谢谢!

Barbara Wu:

回复 haibin deng:

我的代码的透传速率也是1.2KB 这个已经很快了 等MTU有了之后还可以考虑再往上走走

另外您说的ANCS和AD我暂时还没有调过,所以请大牛来回答

haibin deng:

回复 Barbara Wu:

你们不就是大牛吗,

听说你们月底会有新版本发布,现在才9号啊,很多东西都无从下手,现在对2640有点迷茫啊。

Barbara Wu:

回复 haibin deng:

新版本应该是会更稳定一些然后有些像您这样钻研的比较深的客户会关心的特征

我现在在看SCS的一些东西 有时间就看看您说的ANCS和AD的问题

新东西大家都是从头开始看 所以也别迷茫啦

haibin deng:

回复 Barbara Wu:

好的,谢谢!

有问题在继续请教你们。

赞(0)
未经允许不得转载:TI中文支持网 » CC2650 simpleBLEPeripheral工程下添加串口处理(非NPI),写好串口初始化以及接收回调,但无法进入接收回调处理函数。
分享到: 更多 (0)