问题::
1.dsps_v_5.150.2工程中默认初始值始值始值
const statation sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
app_default_sleep_mode = arch_ext_sleep_on在dsps工程工程的是开启扩展睡眠模式模式模式
请问一下da14583在Arch_ext_sleep_on设置设置成扩展模式,dsps工程工程工程工程工程的的
App_default_sleep_mode = Arch_sleep_off,dsps工程工程工程工程工程实现实现实现
但是我实现的功能是
if(条件1==真){
// da14583进入ext_sleep模式
}别的 {
//实现dsps,及da14583外设操作操作
}
当da14583在ext_sleep模式模式下由和和和ble事件(ke_timer_set)唤醒da14583
p.s我当当当当
而(1){
... ... ...
if(((sleep_mode == mode_ext_sleep)||(sleep_mode == mode_deep_sleep)){
gpio_setactive(LED_PORT,LED_PIN);
//为收音机和任何允许的供电
Arch_goto_sleep(Sleep_mode);
... ... ...
2.宏:#define cfg_max_sleep_duration_duration_external_wakeup_ms 10000 // 10s
10s的的的的含义什么跟按功能有关么??
3.请问在在工程工程下
问题多,期待期待支持!
关键字:
设备:
1.开启延长睡眠传输,并没有并没有。你需要在在在端的串口工具里设置流控流控。如果如果如果不不设置设置设置设置设置设置rwip_sleep函数函数。检查检查检查检查检查里面里面里面里面和和射频模块模块模块等。。唤醒唤醒的的的条件条件的的的的。。。。。。。。。。。。。。。。一般一般一般一般一般一般
2. 2.这个是的单次允许的最长时间初初初始值在在在在在在在在在在在在在以以以以以以以以以以以以以以以以以以以以以的的的设置的就是“ cfg_max_sleep_duration_external_wakeup_ms”
通过之前sleep_duration = jump_table_struct [max_sleep_duration_external_wakeup_pos];获得获得;第二个参数是给给给的的时间时间rwip_env.wakeup_delay。
封住封住封住,但大概:前的:前一一个检查检查定定时器时器下下一一次次次起来到到到到当前当前的间隔间隔间隔间隔间隔间隔间隔间隔间隔间隔间隔间隔间隔间隔llldlld lld lld lld lld lld lld lld lld lld lld lldlld里,true true;;这值比比比比比栈睡眠。目前蓝牙协议栈单最多就就10s。。。。。和和按键的的。。。。
3.判断是否睡眠,smartsnippet连接待测连接待测设备设备,spi/uart/uart模式
非常感谢。
1.现在现在我dsps工程设置变量变量
我的:当当条件条件等于等于等于时候操作操作操作,但但但但但但但但但测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的真的
而(1)
{
做 {
//安排所有待处理活动
schedue_while_ble_on();
}
while(((app_asynch_proc()));//对应用程序的授予控制权,请尝试关闭电源
... ... ...
if(条件1==真){
条件1=假假
Arch_set_sleep_mode(Arch_ext_sleep_on);
}
}
3. smartsnippet连接待测连接待测,spi/uart模式,spi/uart/uart模式模式选项选项选项选项选项选项
p.s我不的开发板开发板,smartsnippet,界面uart模式模式下是有串口串口可选可选
期待@gongyu_dialog回复回复
1.应该直接行行,但但有的话,看uart_callback函数函数函数是没办法调用调用到到
2.测电流功能,应该是官方的,你开发板的的。。。。
1.我关闭打印信息信息,在
静态UINT8_T状态= 0;
而(1)
{
做 {
//安排所有待处理活动
schedue_while_ble_on();
}
while(((app_asynch_proc()));//对应用程序的授予控制权,请尝试关闭电源
//如果应用程序返回goto_sleep
//((streamdata_queue)&& stream_queue_more_data());//授予流媒体的授予控制权,请尝试关闭电源
... ... ...
if(条件1==真){
条件1=假假
Arch_set_sleep_mode(Arch_ext_sleep_on);
}
// 500ms执行一次
if(500ms时间到){
if(state == 0){
状态= 1;
GPIO_SETACTIVE(LED2_PORT,LED2_PIN);
}别的 {
状态= 0;
gpio_setinactive(LED2_PORT,LED2_PIN);
}
}
@gongyu_dialog直接配置Arch_set_sleep_mode(Arch_ext_sleep_on);后da14583并没有并没有进入进入进入进入进入
timer里面把里面里面里面timer和活动关掉
所以还需要加句:Arch_ble_ext_wakeup_on();
SDK里里里的的的user_proxr.c文件文件
app_button_enable函数以及app_wakeup_cb函数
我添加后
if(条件1==真){
条件1=假假
Arch_ble_ext_wakeup_on();
Arch_set_sleep_mode(Arch_ext_sleep_on);
}
代码运行会跑到控制代码部分。
user_proxr.c里面app_button_enable函数
没有关于进入进入进入模式模式操作!我找到,请找到找到找到找到找到
非常感谢。
你好,可以可以使用使用开发板开发板测试下dsps_v_5.150.2工程,
配置::
const statation sleep_state_t app_default_sleep_mode = Arch_sleep_off;
#define cfg_mem_map_ext_sleep
#undef cfg_mem_map_deep_sleep
thile(1){
//条件条件操作,判断da14583是否
Arch_set_sleep_mode(Arch_ext_sleep_on);
Arch_ble_ext_wakeup_on();
}
非常感谢!
直接调用,可以,但但会被的广播流程唤醒唤醒唤醒唤醒唤醒。并不并不并不是说停停指令指令指令不动动
Arch_set_sleep_mode(Arch_ext_sleep_on);
Arch_ble_ext_wakeup_on();
wfi指令指令指令指令指令指令指令,gpio状态状态当前
另外,就就的的,在在后外设电的情况
我这里进入睡眠模式模式
*void app_button_press_cb(void)
{
if(getBits16(sys_stat_reg,per_is_down)){
periph_init();
}
if(Arch_get_sleep_mode()== Arch_sleep_off)
{
app_easy_gap_advertise_stop();//关掉广播
Arch_set_sleep_mode(Arch_ext_sleep_on);
Arch_ble_ext_wakeup_on();
}
app_button_enable(); //
}
×关掉广播相关代码
void user_app_adv_start(void)
{
//安排下一个广告数据更新
// app_adv_data_update_timer_used = app_easy_timer(app_adv_data_update_to,adv_data_update_timer_cb);//删掉删掉关掉的操作
struct gapm_start_advertise_cmd* cmd;
cmd = app_easy_gap_undirected_advertise_get_active();
//动态添加制造商特定数据
mnf_data_update();
app_add_ad_struct(cmd,&mnf_data,sizeof(struct mnf_specific_data_ad_structure));
app_easy_gap_undirected_advertise_start();
}
×关掉默认的广播操作
void user_app_adv_undirect_complete(uint8_t状态)
{
//如果取消广告,则更新广告数据并重新开始广告
if(status == gap_err_canceled)
{
// user_app_adv_start(); // //
}
}
×添加gpio函数函数
而(1)
{
做 {
test_gpio1(1);------------------------------------------------------------------------------------------------- //拉高gpio
//安排所有待处理活动
schedue_while_ble_on();
}
while(((app_asynch_proc()));//对应用程序的授予控制权,请尝试关闭电源
//如果应用程序返回goto_sleep
//((streamdata_queue)&& stream_queue_more_data());//授予流媒体的授予控制权,请尝试关闭电源
//如果应用程序返回goto_sleep
//等待中断,如果允许这样做就睡觉了
if(((!ble_app_present)&&(check_gtl_state()))||
(ble_app_present))
{
//禁用中断
global_int_stop();
app_asynch_sleep_proc();
//获得允许的睡眠模式
//从rwip_power_down()到wfi()的时间必须尽可能短!
sleep_mode = rwip_power_down();
if(((sleep_mode == mode_ext_sleep)||(sleep_mode == mode_deep_sleep)){
//为收音机和任何允许的供电
test_gpio1(0);// -------------------------------------------------------------------------------------------------------------拉低GPIO,在下面的函数关掉外设电之前设置
Arch_goto_sleep(Sleep_mode);
//等待中断恢复操作
wfi();
//简历操作
Arch_resume_from_sleep();
}
......
非常感谢感谢
if(Arch_get_sleep_mode()== Arch_sleep_off)
{
gpio_setactive(LED1_PORT,LED1_PIN);//确认确认应了按键
app_easy_gap_advertise_stop();//关掉广播
Arch_set_sleep_mode(Arch_ext_sleep_on);
Arch_ble_ext_wakeup_on();
}
LED 1作为作为判断是否是否是否是否是否是否进入进入进入进入进入进入模式模式模式
... ... ...
if(((sleep_mode == mode_ext_sleep)||(sleep_mode == mode_deep_sleep)){
//为收音机和任何允许的供电
// test_gpio1(0);// -------------------------------------------------------------------------------------------------------------拉低GPIO,在下面的函数关掉外设电之前设置
gpio_setinactive(LED1_PORT,LED1_PIN);
Arch_goto_sleep(Sleep_mode);
... ... ...
结果led1状态一直高,没有没有没有进入进入进入
问题1:请请工程dsps_v_5.150.2下默认下默认流程的地方有??
问题2:da14583在进入进入进入进入,io口口保持掉电
而(1)
{
做 {
//安排所有待处理活动
schedue_while_ble_on();
}
while(((app_asynch_proc()));//对应用程序的授予控制权,请尝试关闭电源
... ... ...
toggle_led2(500);// 500ms周期周期
}
在进行按操作,进入进入
LED2的有种把,要么,要么高,要么低而我的现象是按键,LED2还是后,
这个现象现象说明da14583没有没有成功进入进入进入进入进入
期待回复中。
之前和用工程不一样,dsps工程,你你你你你你还还需要需要个函数个函数个函数个函数
另外另外另外工程操作操作操作操作操作操作操作操作的后又再重启广播广播保持保持默认的的就就行行了。。
void app_button_press_cb(void)
{
if(getBits16(sys_stat_reg,per_is_down)){
periph_init();
}
if(Arch_get_sleep_mode()== Arch_sleep_off)
{
app_easy_gap_advertise_stop();
Arch_set_sleep_mode(Arch_ext_sleep_on);
USER_SPS_SET_MODE(Arch_ext_sleep_on); -------------------------------------
user_scheduler_reinit(); //
Arch_ble_ext_wakeup_on();
}
app_button_enable();
}
void user_sps_set_mode(uint8_t模式)
{
app_default_sleep_mode = mode;
}
非常感谢,按照如上后,da14583成功成功进入进入进入进入进入
我用的是DSPS_v_5.150.2代码,我如何设置进入到EXT_SLEEP呢?我将app_default_sleep_mode = ARCH_EXT_SLEEP_ON打开,#undef CFG_DEVELOPMENT_DEBUG,因为我的设备不允许用流控,将#undef CFG_UART_HW_FLOW_CTRL,#undef CFG_UART_SW_FLOW_CTRL,下载到外接闪光,我我是14580,但是不正确,ble接收数据,发送,发送数据,能否,能否,能否实现,谢谢,谢谢
我如果软件流控,PC端11313,而且收发数据不,谢谢,谢谢!,谢谢
sdk5.04的prox_reporter,进入进入睡眠后后后