微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UART 块 TIRTOS

如何解决UART 块 TIRTOS

´我一直在尝试为 TI 的 CC2650 开发一个 APP。我正在使用 SimpleBLEperipheral 示例。我想做的是:

  • 将“SBP_PERIODIC_EVT_PERIOD”设置为 1000 毫秒
  • 读取 UART
  • 编写外围特性

我的问题是: 当我将“SBP_PERIODIC_EVT_PERIOD”设置为 1000 毫秒时,代码会工作一段时间,但在 10-20 分钟后停止。如果时间设置为超过 1500 毫秒,则不会出现此问题。我认为 UART_read 函数需要很长时间并被取消,这会导致代码挂起。我能做什么?

我的写代码是:

static void SimpleBLEPeripheral_performPeriodicTask(void)
{

#ifndef FEATURE_OAD_ONCHIP
    //Read data from UART RX to Buffer
    if (  UART_read(my_Handle,&my_Buffer,SIMPLEPROFILE_CHAR4_LEN) != 0 )
        {
            SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR4,SIMPLEPROFILE_CHAR4_LEN,my_Buffer);
        }

    else
    {
        System_printf("Couldn't read UART");
    }

   #endif //!FEATURE_OAD_ONCHIP
}

这是我初始化 UART 的方式:

UART_Params_init(&params);
params.baudrate  = 4800;
params.writeDataMode = UART_DATA_BINARY;
params.readDataMode = UART_DATA_BINARY;
params.readTimeout = UART_WAIT_FOREVER;
params.writeTimeout = UART_WAIT_FOREVER;
params.readReturnMode = UART_RETURN_FULL;
params.readEcho = UART_ECHO_OFF;

my_Handle = UART_open(Board_UART,&params);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。