使用串口服务流数据的最佳方式

11个帖子/ 0个新帖子
最后发表
JBaczuk
离线
最后看到:1年9个月前
加入:2014-12-31 23:41
使用串口服务流数据的最佳方式

我已经浏览了串口服务的代码,由于它是用UART和SPS之间共享的指针设置的,所以我不确定从应用程序向移动设备发送数据的最佳方式。例如,我想定期从传感器发送ASCII值,但使用示例代码实现这一点的最佳方法是什么,我应该在内存中分配自己的指针,然后调用app_uart_push()吗?也许几行示例代码会有所帮助。谢谢!

关键词:
设备:
MHv_Dialog
离线
最后看到:三个月三个星期前
工作人员
加入:15 2013-12-06
你好,

你好,

我建议实现一个自定义服务来移动传感器数据。据我所知,你的传感器数据,是定期传输的谨慎数据集。应用笔记http://support.dialog-semiconductor.com/download/file/fid/885在循序渐进的教程中介绍如何构建自己的自定义服务。应用程序说明还描述了如何设置通知,允许设备在数据发生变化时向智能手机发送数据。DSPS使用相同的基本方法(GATT上的通知),对于需要以非常高的数据速率传输流数据的系统来说,它是一个很好的候选者,但它不是周期性传输识别数据包的最佳候选者。使用自定义服务还可以使实现应用程序的智能手机端更加容易。

JBaczuk
离线
最后看到:1年9个月前
加入:2014-12-31 23:41
好的,我看看。是的,

好的,我看看。是的,你是对的,它们将是非常小的,周期性的数据集,所以不需要高数据流。

Elvis1991
离线
最后看到:8个月2天前
加入:2014-12-09 08:18
亲爱的JBaczuk,

亲爱的JBaczuk,
新手的问题。你知道在哪里可以找到从键盘输入的数据在SPS项目?我注意到uart_rx_callback()可以实现这个函数,它的定义如下所示

****************************************************************************************
* @brief接收回调函数将处理传入uart数据

* @param[in] res (status: UART_STATUS_OK, UART_STATUS_ERROR, UART_STATUS_TIMEOUT)

* @return没有
****************************************************************************************
* /

Static uart_rx_callback(uint8_t res, uint32_t read_size)

//函数从uart接收isr
如果(res = = UART_STATUS_OK)

app_uart_push (rx_read_pointer RX_CALLBACK_SIZE rx_state_ptr);
}

//从uart超时isr调用函数
else if(res == UART_STATUS_TIMEOUT)

app_uart_push (rx_read_pointer read_size rx_state_ptr);
}
其他的

(1);//错误:从未知的来源调用回调
}

/ /我觉得回调
uart_sps_read(rx_read_pointer, RX_CALLBACK_SIZE, &rx_state_ptr, &uart_rx_callback);

我跟踪了uart_rx_callback()中的uart_sps_read(),它的定义是:
uart_sps_read(uint8_t *bufptr, uint32_t size, uint8_t *state, Void (*callback) (uint8_t, uint32_t)

/ /检查
ASSERT_ERR (bufptr ! = NULL);
ASSERT_ERR(大小! = 0);
ASSERT_ERR (uart_sps_env.rx。bufptr = = NULL);

//准备RX参数
uart_sps_env.rx。大小=大小;
uart_sps_env.rx。bufptr = bufptr;
uart_sps_env.rx。=状态;
uart_sps_env.rx。回调=回调;

//启动数据事务
uart_rec_data_avail_setf (1);/ / = SetBits16 (UART_IER_DLH_REG ETBEI_dlh0 1);
}

我没有从键盘上找到任何输入…
由于我想修改这个项目,使用非常小的,周期性的数据集,由MCU产生,以取代从键盘输入的数据。(只是生成一个信号来模拟真实的数据),我需要知道UART读取的数据在哪里。

你能给我一些提示吗?谢谢!

NRenney
离线
最后看到:3年4个月前
加入:2017-06-26 44
如果这个问题可以

如果这个问题能够得到解答,这将对我现在正在进行的项目有帮助。

JBaczuk
离线
最后看到:1年9个月前
加入:2014-12-31 23:41
你说的是

你说的键盘数据是在发送BLE之前还是之后?对于Dialog来说,这可能是一个更好的问题,因为我没有花太多时间在SPS上,我为我的应用程序创建了一个自定义概要文件。

NRenney
离线
最后看到:3年4个月前
加入:2017-06-26 44
抱歉,我是来指挥的

抱歉,我本想把这个问题更多地告诉Dialog。考虑到有很多问题要问他们,我已经开始了我自己的话题!
是的,我只是想知道键盘数据在代码中接收到哪里,因为我无法在他们的例子中找到它,这不是我们在项目中直接需要的东西,但我很好奇。

MT_dialog
离线
最后看到:4个月1天前
工作人员
加入:2015-06-08 34
嗨NRenney,

嗨NRenney,

如果我正确理解了这个问题,显然这里有点混乱。您想知道DSPS中从UART接收的数据存储在哪里?从UART接收到的数据被放置在外围_to_ble_buffer环形缓冲区(指向data_ptr成员的地址)。

由于MT_dialog

BlueSDK18
离线
最后看到:3年3个月前
加入:2018-02-13十一25
嗨JBaczuk,

嗨JBaczuk,

找不到应用程序笔记的资源链接!
你知道有关申请须知的名称吗?
这对我很有帮助!

提前谢谢。

BlueSDK18

MT_dialog
离线
最后看到:4个月1天前
工作人员
加入:2015-06-08 34
嗨BlueSDK18,

嗨BlueSDK18,

我假设你感兴趣有一个演示使用通知将发送数据中心,在这种情况下ble_app_peripheral已经证明,只写一个0 x01控制点特点和ADC 1上启用的通知为了开始数据值。在“教程”一节中还有一个教程,它将帮助你定制已经存在的自定义配置文件。您所引用的链接非常旧,链接到的文档很可能已经过时,并从支持站点上删除了。

由于MT_dialog

BlueSDK18
离线
最后看到:3年3个月前
加入:2018-02-13十一25
嗨MT_Dialog,

嗨MT_Dialog,

谢谢你对我问题的回复!
答案就是我想知道的。

BlueSDK18