// 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 \ test \ n \ r rend)); } ************************************************************************************************* 我已经包含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,
这不是通过对话框实现的,您必须将DSP的现有实现调整为您的需求,以便将数据发送到DSPS应用程序,可以将USER_PERIPH_PUS()(用于SDK5版本)功能作为示例并调整您想要的函数效率才能将I2C数据从I2C传感器推到BLE缓冲区而不是UART,然后再到链路的另一侧。如果您不想模拟串行端口,并且只想通过BLE发送传感器数据,您不必使用DSPS应用程序,但每次具有传感器数据时都使用自定义配置文件实现并通知客户端。如果您需要一个示例,您可以查看app_ble_peripheral,其中有一个示例以触发稳定速率间隔的通知。
谢谢mt_dialog.
Q1。请提及用于将数据发送到DSPS应用的功能,
Q2。还指定DSPS源代码API是否函数通过BLE和SmartBand IOT源代码API函数发送数据
我在DSPS源代码中使用user_send_ble_data(p_data,长度)函数将数据发送到DSPS应用程序,是否有任何其他功能可用于将数据发送到DSP上的数据
嗨prasanth.velliyangiri,
1.正如我在我的前一篇文章中提到的DSPS应用程序模拟串行通信,如果你只想将数据发送到链接的另一侧,你可以使用比DSPS应用程序更简单的方式,你提到的具体功能拉动数据来自UART填充的DSP缓冲区,并将其作为通知发送到链路的另一侧。这是DSP使用的功能,以便将数据从缓冲区发送到链路的另一侧。
2. DSP和IOT项目使用完全不同的自定义配置文件总计不同的项目。从本质上讲,两者都是使用通知/指示和写入和读取命令,以便沟通(作为所有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长度;
// read_sensor()//我的req - 通过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(&periph_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移动应用程序上获得一些数据,如果我启用//我的req注释,代码进入无限循环,我无法获得任何数据
以上代码,在i2c read_sensor()中添加延迟会影响代码?,即使在IOT项目和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东西[] = {0x0a,'r','e','e','3','y',0x0d,'>'};
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 ++;
}
************************************************************************************************************************************
void 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 IRQ的回调函数
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 \ test \ n \ r rend));
}
*************************************************************************************************
我已经包含Timer0中断以延迟,这 - 虽然(timout_expiration);- 函数中的线路void timer0_general_test(uint8_t time_seconds)使代码无限循环,可能是问题,单独计时器0代码工作正常,在DSP内没有工作
你可以把这个票子打倒,我得到了答案,谢谢你的帮助......
嗨prasanth.velliyangiri,
我读了上面的对话,我也在努力解决非常相似的东西。但我刚刚开始工作。您能否请帮助我参加项目的第一部分I.E.阅读来自传感器的数据。如果你能指出我应该看的档案以及我需要照顾的确切功能会很棒。
谢谢。
嗨宝拉巴斯纳尔
我正在使用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-semicondiondiond.com/iot-server-dsps-hostdata-transmi ...
嗨prasanth.velliyangiri,
我的应用是在DSPS应用中实时可见温度传感器数据。那么你建议是什么应该是最合适的文件?
嗨宝拉巴斯纳尔
- b -038 DA14580串口服务参考应用程序_v2.0 -帮助dsp