//printf_string("\n\rLED将改变状态每秒钟\n\r"); //printf_string("\n\rTest将运行为:"); // 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 \ rTIMER0停! \ n \ r”); // printf_string(“\ n \ test \ n \ r rend)); } ************************************************************************************************* 我已经包含了timer0中断延迟,这个——while (timeout_expiration);——行函数void timer0_general_test(uint8_t times_seconds)使代码无限循环,什么可能的问题,单独的timer0代码工作良好,在DSPS不工作
嗨prasanth.velliyangiri,
我想你可以使用app_uart_push()以便将数据从I2C推送到BLE缓冲区,这是由UART的接收调用正常调用,它将数据推入BLE缓冲区。您可以找到有关串口应用程序的所有可用信息以及串行端口服务参考应用程序注意中的最重要功能。
谢谢mt_dialog.
我正在使用DSPS源代码项目,我正在成功地从传感器读取数据,现在我想通过蓝牙而不是通过UART发送这个数据到DSPS android app,如何做,请提到功能和步骤
我正在使用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发送数据和智能带IOT源代码API函数是相同的
我正在使用user_send_ble_data(p_data,长度)函数在DSPS源代码发送数据到DSPS应用程序,是否有任何其他函数可用来发送数据通过BLE到DSPS
嗨prasanth.velliyangiri,
1.正如我在我的前一篇文章中提到的DSPS应用程序模拟串行通信,如果你只想将数据发送到链接的另一侧,你可以使用比DSPS应用程序更简单的方式,你提到的具体功能拉动数据来自UART填充的DSP缓冲区,并将其作为通知发送到链路的另一侧。这是DSP使用的功能,以便将数据从缓冲区发送到链路的另一侧。
2.DSPS和IoT项目是使用完全不同的自定义配置文件的完全不同的项目。本质上,两者都使用通知/指示和读写命令来进行通信(就像所有BLE项目所做的那样),但这两种参考设计的架构是完全不同的。DSPS使用3个特征通过无线链路模拟串口,物联网使用10个特征发送传感器数据,每个传感器或处理值对应一个特征。
谢谢mt_dialog.
// extern void Read_sensor(void) //我的REQ
// extern unsigned char SensorData[20];/ /我的要求
Void user_ble_pull (bool init, bool success)
{
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(& peripher_to_ble_buffer)) > 0)
if (length > TX_WAIT_LEVEL || (rounds_waiting++) >= TX_WAIT_ROUNDS)
{
uint8_t * p_data = null;
rounds_waiting = 0;
tx_busy_flag = true;
= (length > TX_SIZE ?TX_SIZE:长度);
length = (length < TX_START_FRAME_DATA_SIZE ?((((length - TX_START_FRAME_DATA_SIZE) / TX_CONTINUE_FRAME_DATA_SIZE) * TX_CONTINUE_FRAME_DATA_SIZE + TX_START_FRAME_DATA_SIZE));
length = user_buffer_read_address(& peripher_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 *)SensorData, length);/ /我的要求
}
}
}
其他的
{
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;
rounds_waiting = 0;
tx_busy_flag = true;
= (length > TX_SIZE ?TX_SIZE:长度);
TX_START_FRAME_DATA_SIZE = ((((length - TX_START_FRAME_DATA_SIZE) / TX_CONTINUE_FRAME_DATA_SIZE) * TX_CONTINUE_FRAME_DATA_SIZE + TX_START_FRAME_DATA_SIZE);
length = user_buffer_read_address(& peripher_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 *)SensorData, length);/ /我的要求
}
}
上面的代码工作正常,我在DSPA移动应用程序上获得一些数据,如果我启用//我的req注释,代码进入无限循环,我无法获得任何数据
以上代码,在i2c read_sensor()中添加延迟会影响代码?,即使在IOT项目和I2C EEPROM中我也没有看到任何延迟......
谢谢你...
嗨prasanth.velliyangiri,
代码是否被困在了一个无尽的循环中?当您读取I2C (Read_Sensor())被调用时,您看到您的代码被捕获了吗?我不明白你在说什么延迟,你在读取I2C传感器时插入了延迟?
谢谢mt_dialog.
空白Read_sensor(空白)
{
/ / 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);//延迟定时器中断
}
*********************************************************************************************************************************
空白timer0_general_user_callback_function(空白)
{
Static uint8_t n = 0;
//当通过10 * 100ms
If (5 == n)
{
n = 0;
UART_INIT(UART_BAUDRATE_115K2,3);
UART_FLOW_OFF();
uint8_t东西[]= {0 x0a,‘R’,‘e’,‘‘,‘d’,‘y’,0 x0d 0 x0a ' > '};
uart_write ((uint8 *) timeout_expiration 10 NULL);
uart_finish_transfers ();
timeout_expiration--;
/ / printf_string(“\一步!”);
}
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\rTest将运行为:");
// 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 \ rTIMER0停! \ n \ r”);
// printf_string(“\ n \ test \ n \ r rend));
}
*************************************************************************************************
我已经包含了timer0中断延迟,这个——while (timeout_expiration);——行函数void timer0_general_test(uint8_t times_seconds)使代码无限循环,什么可能的问题,单独的timer0代码工作良好,在DSPS不工作
你可以把这个票子打倒,我得到了答案,谢谢你的帮助......
嗨prasanth.velliyangiri,
我读了上面的对话,我也在努力解决非常相似的东西。但我刚刚开始工作。您能否请帮助我参加项目的第一部分I.E.阅读来自传感器的数据。如果你能指出我应该看的档案以及我需要照顾的确切功能会很棒。
谢谢。
嗨GauravBansal
我正在使用AN-B-029_V1.0为自定义配置文件读取数据并通过蓝牙发送,这个rar扩展有教程pdf也..,这将对你有帮助
http://support.dialog semiconductor.com/resource/b - 029教程——文件——su..。
嗨prasanth.velliyangiri,
谢谢您的回复。我在sample128上工作,并通过doc AN-B-029开发一个蓝牙智能定制profile_V1.0,如您建议的。这使得移动应用Blueloupe和我的DVK板之间进行了有效的沟通。但我仍然不知道如何将我的电路板集成到任何传感器,也不知道如何通过DSPS应用程序。如果你能给我提供更多关于这方面的文档或指南,我将非常感激。
嗨GauravBansal
我不明白你的问题-如何集成我的板到任何传感器,也通过DSPS应用程序??,
如果你在BLE CLIENT - BLE SERVER中工作,请参考此链接
http://support.dialog-semicondiondiond.com/iot-server-dsps-hostdata-transmi ...
嗨prasanth.velliyangiri,
我的应用是在DSPS应用中实时可见温度传感器数据。那么你建议是什么应该是最合适的文件?
嗨GauravBansal
UM-B-038 DA14580串口服务参考application_v2.0 -帮助与DSPS