// printf_string(“\ n \ rled每秒改变状态。\ n \ r”); // printf_string(“\ n \ n \ n将运行:”); / / printf_byte (timeout_expiration); / / printf_string(“秒。\ n \ r”);
//启动Timer0. timer0_start (); / / printf_string(“\ n \ rTIMER0开始!”);
//等待所需的秒数 而(timeout_expiration);
//禁用Timer0,Timer2时钟 set_tmr_enable (CLK_PER_REG_TMR_DISABLED); // printf_string(“\ n \ n \ttimer0停止!\ n \ r”); / / printf_string(“\ n \撕裂测试\ n \ r”); } ************************************************************************************************* 我已经包含Timer0中断以延迟,这 - 虽然(timout_expiration);- 函数中的线路void timer0_general_test(uint8_t time_seconds)使代码无限循环,可能是问题,单独计时器0代码工作正常,在DSP内没有工作
嗨prasanth.velliyangiri,
我认为您可以使用app_uart_push()来将数据从您的i2c推到ble缓冲区,这通常由UART的接收回调调用,它将数据推到ble缓冲区。您可以在“串口服务参考应用说明”中找到有关串口应用程序的所有可用信息和最重要的功能。
由于MT_dialog
我正在使用的dsp源代码项目,我成功地从传感器读取数据,现在我想发送这个数据通过蓝牙而不是通过UART,到dsp android应用程序,如何做到,请说明功能和步骤
我正在使用DSPS源代码 - SPS_DEVICE项目,我成功地从传感器读取数据,现在我想通过蓝牙发送此数据,到DSPS Android应用程序,如何执行此操作,请提及函数和步骤
嗨prasanth.velliyangiri,
这不是通过对话框实现的,你必须调整现有的DSPS实现来满足你的需求,以便将数据发送到DSPS应用程序,您可以以user_peripheral _push()(适用于SDK5版本)函数为例,并调整所需的功能,以便将I2C数据从I2C传感器推送到ble缓冲区,而不是UART,然后再推送到链接的另一端。如果你不想模拟一个串行端口,你只是想通过BLE发送传感器数据,你不必使用DSPS应用程序,但使用自定义配置文件实现,并通知客户端每次你有传感器数据。如果您需要这方面的示例,您可以查看app_ble_peripheral,其中有一个以稳定的速率间隔触发通知的示例。
由于MT_dialog
Q1。请说明用于发送数据到dsp app的功能,
Q2。还指定DSPS源代码API是否函数通过BLE和SmartBand IOT源代码API函数发送数据
我在DSPS源代码中使用user_send_ble_data(p_data,长度)函数将数据发送到DSPS应用程序,是否有任何其他功能可用于将数据发送到DSP上的数据
嗨prasanth.velliyangiri,
1.正如我在我之前的帖子中提到的,DSPS应用程序模拟串行通信,如果你只是想发送数据到链路的另一边,你可以使用比DSPS应用程序更简单的方法,您提到的特定函数从由UART填充的DSPS缓冲区中提取数据,并将它们作为通知发送到链接的另一端。这是dsp使用的功能,以便将数据从缓冲区发送到链路的另一端。
2. DSP和IOT项目使用完全不同的自定义配置文件总计不同的项目。在本质上都是使用notificatios /适应症和写入和读出的命令,以进行通信(因为所有的项目BLE做),但两个参考架构设计是完全不同的。DSP使用3个特征在无线链路上模拟串口,并且IOT使用10个特性为每个传感器或Proccessed值发送传感器数据。
由于MT_dialog
// extern void read_sensor(void)//我的req
// externed unsigned char sensoldata [20];//我的req.
void user_ble_pull(bool init,bool成功)
{
Bool send_flow_on = false;
静态bool tx_busy_flag = false;
静态uint8_t rounds_waiting = 0;
静态uint16_t长度;
//读取传感器I2C数据
如果(init)
{
如果(! tx_busy_flag)
{
if((length = user_buffer_item_count(&periph_to_ble_buffer)> 0)
if(length> tx_wait_level ||(rounds_waiting ++)> = tx_wait_rounds)
{
uint8_t *p_data = NULL;
循环_waiting = 0;
tx_busy_flag = true;
长度=(长度> tx_size?tx_size:长度);
length = (length < TX_START_FRAME_DATA_SIZE ?)length: ((length - start_frame_data_size) / TX_CONTINUE_FRAME_DATA_SIZE) * TX_CONTINUE_FRAME_DATA_SIZE + TX_START_FRAME_DATA_SIZE));
length = user_buffer_read_address(&periph_to_ble_buffer,&p_data,tx_size);
p_data[0] = 'P';
p_data[1] =“P”;
p_data [2] ='p';
p_data[3] = 'A';
长度= 4;
user_send_ble_data (p_data、长度);
// user_send_ble_data((const uint8_t *)senordata,长度);//我的req.
}
}
}
别的
{
tx_busy_flag = false;
如果(成功)
user_buffer_release_items(&periph_to_ble_buffer,长度);
if(length = user_buffer_item_count(&外围_to_ble_buffer)) > TX_WAIT_LEVEL)
{
uint8_t *p_data = NULL;
循环_waiting = 0;
tx_busy_flag = true;
长度=(长度> tx_size?tx_size:长度);
length = ((length - start_frame_data_size) / TX_CONTINUE_FRAME_DATA_SIZE) * TX_CONTINUE_FRAME_DATA_SIZE + TX_START_FRAME_DATA_SIZE);
length = user_buffer_read_address(&periph_to_ble_buffer,&p_data,tx_size);
p_data[0] = 'V';
p_data [1] ='v';
p_data [2] = ' V ';
p_data[3] = 'B';
长度= 4;
user_send_ble_data (p_data、长度);
// user_send_ble_data((const uint8_t *)senordata,长度);//我的req.
}
}
上面的代码工作得很好,我在DSPA移动应用程序上获得一些数据,如果我启用// MY REQ注释,代码进入无尽的循环,我不能获得任何数据
在上面的代码中,添加I2C Read_sensor()中的延迟是否影响代码??,即使在物联网项目和i2c eeprom中,我也没有看到任何延迟……
谢谢你!
嗨prasanth.velliyangiri,
代码被困并进入无尽的循环?读取I2C时(read_sensor())被调用,您会看到您的代码被删除了?我不符合您谈论的延迟,在读取I2C传感器时插入延迟?
由于MT_dialog
void read_sensor(void)
{
// read_sensor_1();
/ / Read_sensor_2 ();
uart_init (UART_BAUDRATE_115K2 3);
uart_flow_off ();
uint8_t东西[]= {0 x0a,‘R’,‘e’,‘e’,' 3 ',' y ', 0 x0d ' > '};
uart_write (12, NULL);
UART_FINISH_TRANSFERS();
timer0_general_test (10);//定时器中断延迟
}
*********************************************************************************************************************************
void timer0_general_user_callback_function(void)
{
静态UINT8_T n = 0;
//通过10 * 100ms
if(5 == n)
{
n = 0;
uart_init (UART_BAUDRATE_115K2 3);
uart_flow_off ();
uint8_t东西[] = {的0x0A, 'R', 'E', 'A', 'd', 'Y',0X0D,的0x0A, '>'};
UART_WRITE((uint8 *)timeout_expion,10,null);
UART_FINISH_TRANSFERS();
timeout_expiration——;
// printf_string(“\ nvp!”);
}
n ++;
}
************************************************************************************************************************************
空白timer0_general_test (uint8_t times_seconds)
{
// printf_string(“\ n \ r \ n \ r”);
/ / printf_string ("***********************\ n \ r”);
// printf_string(“* timer0常规测试* \ n \ r”);
/ / printf_string ("***********************\ n \ r”);
//停止计时器输入设置
timer0_stop();
timeout_expiration = times_seconds;
// SWTIM_IRQn的注册回调函数
timer0_register_callback(timer0_general_user_callback_function);
//启用Timer0时钟
set_tmr_enable(clk_per_reg_tmr_enabled);
//设置TIMER0,TIMER2时钟分割因子为8,因此TIM0 Fclk为F = 16MHz/8 = 2Mhz
set_tmr_div (CLK_PER_REG_TMR_DIV_8);
//清除PWM设置寄存器未生成PWM
timer0_set_pwm_high_counter (NO_PWM);
timer0_set_pwm_low_counter(no_pwm);
//设置2MHz源时钟除以10的定时器Fclk = 2MHz/10 = 200kHz
timer0_init (TIM0_CLK_FAST PWM_MODE_ONE TIM0_CLK_DIV_BY_10);
//重新加载100ms的值(T = 1/200kHz * RELOAD_100MS = 0,000005 * 20000 = 100ms)
timer0_set_pwm_on_counter (RELOAD_100MS);
//启用SWTIM_IRQN IRQ
timer0_enable_irq();
// printf_string(“\ n \ rled每秒改变状态。\ n \ r”);
// printf_string(“\ n \ n \ n将运行:”);
/ / printf_byte (timeout_expiration);
/ / printf_string(“秒。\ n \ r”);
//启动Timer0.
timer0_start ();
/ / printf_string(“\ n \ rTIMER0开始!”);
//等待所需的秒数
而(timeout_expiration);
//禁用Timer0,Timer2时钟
set_tmr_enable (CLK_PER_REG_TMR_DISABLED);
// printf_string(“\ n \ n \ttimer0停止!\ n \ r”);
/ / printf_string(“\ n \撕裂测试\ n \ r”);
}
*************************************************************************************************
我已经包含Timer0中断以延迟,这 - 虽然(timout_expiration);- 函数中的线路void timer0_general_test(uint8_t time_seconds)使代码无限循环,可能是问题,单独计时器0代码工作正常,在DSP内没有工作
你可以在这张票上签上,我得到了答案,谢谢你的帮助…
嗨prasanth.velliyangiri,
我读了上面的对话,我也在做一些非常相似的事情。但是我才刚刚开始我的工作。你能帮我完成项目的第一部分,从传感器读取数据吗?如果你能给我指出我应该查看的资料和我需要处理的确切功能,那就太好了。
谢谢。
嗨宝拉巴斯纳尔
我正在使用Tha An-B-029_V1.0进行自定义配置文件来读取数据并通过蓝牙发送,这次RAR EXTENTER有教程PDF。这对你有所帮助
http://support.dialog-semicondiondiondum/resource/b-029-tutorial-files-su ...
嗨prasanth.velliyangiri,
感谢您的答复。我在Sample128上工作,并通过Doc An-B-029开发蓝牙智能自定义Profile_v1.0,如您所建议的那样。这导致了移动应用程序Blueloupe和我的DVK板之间的有效沟通。但我仍然无法弄清楚如何将我的电路板集成到任何传感器以及通过DSPS应用程序。如果您可以将我指出更多文档或指南,我将非常感激。
嗨宝拉巴斯纳尔
我不明白你的问题-如何将我的电路板集成到任何传感器,也通过DSPS应用程序??,
如果您在BLE客户端 - BLE服务器中工作,请参阅此链接
http://support.dialog-semiconductor.com/iot-server-dsps-hostdata-transmi..。
嗨prasanth.velliyangiri,
我的应用程序是获得温度传感器数据在dsps应用程序实时可见。那么你认为最合适的文档应该是什么呢?
嗨宝拉巴斯纳尔
- b -038 DA14580串口服务参考应用程序_v2.0 -帮助dsp