我已经浏览了串口服务的代码,由于它是用UART和SPS之间共享的指针设置的,所以我不确定从应用程序向移动设备发送数据的最佳方式。例如,我想定期从传感器发送ASCII值,但使用示例代码实现这一点的最佳方法是什么,我应该在内存中分配自己的指针,然后调用app_uart_push()吗?也许几行示例代码会有所帮助。谢谢!
你好,
我建议实现一个自定义服务来移动传感器数据。据我所知,你的传感器数据,是定期传输的谨慎数据集。应用笔记http://support.dialog-semiconductor.com/download/file/fid/885在循序渐进的教程中介绍如何构建自己的自定义服务。应用程序说明还描述了如何设置通知,允许设备在数据发生变化时向智能手机发送数据。DSPS使用相同的基本方法(GATT上的通知),对于需要以非常高的数据速率传输流数据的系统来说,它是一个很好的候选者,但它不是周期性传输识别数据包的最佳候选者。使用自定义服务还可以使实现应用程序的智能手机端更加容易。
好的,我看看。是的,你是对的,它们将是非常小的,周期性的数据集,所以不需要高数据流。
亲爱的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读取的数据在哪里。
你能给我一些提示吗?谢谢!
如果这个问题能够得到解答,这将对我现在正在进行的项目有帮助。
你说的键盘数据是在发送BLE之前还是之后?对于Dialog来说,这可能是一个更好的问题,因为我没有花太多时间在SPS上,我为我的应用程序创建了一个自定义概要文件。
抱歉,我本想把这个问题更多地告诉Dialog。考虑到有很多问题要问他们,我已经开始了我自己的话题!是的,我只是想知道键盘数据在代码中接收到哪里,因为我无法在他们的例子中找到它,这不是我们在项目中直接需要的东西,但我很好奇。
嗨NRenney,
如果我正确理解了这个问题,显然这里有点混乱。您想知道DSPS中从UART接收的数据存储在哪里?从UART接收到的数据被放置在外围_to_ble_buffer环形缓冲区(指向data_ptr成员的地址)。
由于MT_dialog
嗨JBaczuk,
找不到应用程序笔记的资源链接!你知道有关申请须知的名称吗?这对我很有帮助!
提前谢谢。
BlueSDK18
嗨BlueSDK18,
我假设你感兴趣有一个演示使用通知将发送数据中心,在这种情况下ble_app_peripheral已经证明,只写一个0 x01控制点特点和ADC 1上启用的通知为了开始数据值。在“教程”一节中还有一个教程,它将帮助你定制已经存在的自定义配置文件。您所引用的链接非常旧,链接到的文档很可能已经过时,并从支持站点上删除了。
嗨MT_Dialog,
谢谢你对我问题的回复!答案就是我想知道的。
你好,
我建议实现一个自定义服务来移动传感器数据。据我所知,你的传感器数据,是定期传输的谨慎数据集。应用笔记http://support.dialog-semiconductor.com/download/file/fid/885在循序渐进的教程中介绍如何构建自己的自定义服务。应用程序说明还描述了如何设置通知,允许设备在数据发生变化时向智能手机发送数据。DSPS使用相同的基本方法(GATT上的通知),对于需要以非常高的数据速率传输流数据的系统来说,它是一个很好的候选者,但它不是周期性传输识别数据包的最佳候选者。使用自定义服务还可以使实现应用程序的智能手机端更加容易。
好的,我看看。是的,你是对的,它们将是非常小的,周期性的数据集,所以不需要高数据流。
亲爱的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读取的数据在哪里。
你能给我一些提示吗?谢谢!
如果这个问题能够得到解答,这将对我现在正在进行的项目有帮助。
你说的键盘数据是在发送BLE之前还是之后?对于Dialog来说,这可能是一个更好的问题,因为我没有花太多时间在SPS上,我为我的应用程序创建了一个自定义概要文件。
抱歉,我本想把这个问题更多地告诉Dialog。考虑到有很多问题要问他们,我已经开始了我自己的话题!
是的,我只是想知道键盘数据在代码中接收到哪里,因为我无法在他们的例子中找到它,这不是我们在项目中直接需要的东西,但我很好奇。
嗨NRenney,
如果我正确理解了这个问题,显然这里有点混乱。您想知道DSPS中从UART接收的数据存储在哪里?从UART接收到的数据被放置在外围_to_ble_buffer环形缓冲区(指向data_ptr成员的地址)。
由于MT_dialog
嗨JBaczuk,
找不到应用程序笔记的资源链接!
你知道有关申请须知的名称吗?
这对我很有帮助!
提前谢谢。
BlueSDK18
嗨BlueSDK18,
我假设你感兴趣有一个演示使用通知将发送数据中心,在这种情况下ble_app_peripheral已经证明,只写一个0 x01控制点特点和ADC 1上启用的通知为了开始数据值。在“教程”一节中还有一个教程,它将帮助你定制已经存在的自定义配置文件。您所引用的链接非常旧,链接到的文档很可能已经过时,并从支持站点上删除了。
由于MT_dialog
嗨MT_Dialog,
谢谢你对我问题的回复!
答案就是我想知道的。
BlueSDK18