你好,
我在一个中断触发DA14580醒来。我想知道的是什么时候准备好接受UART信息和发送他们。会结束时,回调函数或进一步的代码?提前谢谢。
嗨Avouaill,
在睡眠模式下的设备关闭XTAL16时钟生成的关键UART,醒来之后你将不得不等待为了XTAL16定居。最安全的地方,确保XTAL16已经定居在app_on_ble_powered回调(因为核心还需要XTAL16为了经营),经过这个函数,只要你不睡觉设备将XTAL16结算,做好准备,你将能够通过UART接收数据。
由于MT_dialog
谢谢你的回答。我实际使用的版本V.150.2,我找不到任何app_on_ble_powered函数。你知道有一个相当于我用的版本。
谢谢提前
问候
在所有回调叫app_on_ble_powered SDK5版本,甚至在第一SDK的SDK5.0.2.1 5版本中,我假设您正在使用SDK3。在这种情况下没有回调,你可以附上源代码和相关的钩,您可以将代码是app_asynch_trm()函数。但我强烈建议搬到SDK 5。
好的我明白了。我试图做的是醒来BLE模块从延长睡眠模式和发送一个中断到加州大学警告当UART准备好了。是否可以为我提供一个回调函数可以正常醒来BLE模块所有必要的功能?我将添加中断与需求。
差不多了,callbcack函数被调用正确,我切换BLE_int内部生成中断在加州大学。问题是,到底3醒来后,毫无理由不切换BLE_int了。这是我的回调函数的代码:
空白ext_wakeup_cb(空白){如果(fsleep = = ARCH_EXT_SLEEP_ON){如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN)){
如果(DEVELOPMENT_DEBUG) {GPIO_reservations ();}}
SetBits32 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);fsleep = ARCH_SLEEP_OFF;}其他的fsleep = ARCH_EXT_SLEEP_ON;
GPIO_SetActive (GPIO_PORT_0 GPIO_PIN_7);/ /信号警告UART uC是准备好了wkupct_enable_irq (0 x40 0 x00 1,0);wkupct_register_callback (ext_wakeup_cb);GPIO_SetInactive (GPIO_PORT_0 GPIO_PIN_7);/ /信号警告UART uC是准备好了}
函数一定是错的,我不明白。
我不确定如果你正在寻找什么,但为了迫使醒来的祝福(没有等待事件调度应用程序将不得不迫使BLE醒来)你必须调用arch_ble_force_wakeup ();后做设备应该尽快醒来过程的核心和核心唤醒了app_asynch_trm()将得到执行。
关于你提到的问题后,我认为你不该看到的切换如你所愿,我不看到任何回调函数调用periph_init()函数为了你的针被初始化,所以也许时代,设备切换销只是发生设备和外设清醒。一些评论,不需要调用GPIO_reservations(),该函数的调用在系统初始化后,不需要再次调用它。而不是使ble核心通过直接写寄存器可以使用arch_ble_force_wakeup()函数,如果我没记错的话还有app_ble_force_wakeup()的SDK 3完全相同。也允许我再次提到你正在请求醒来BLE核心并不意味着核心立即醒来,核心就会清醒设备进入app_asynch_trm()正如我前面提到的。请检查在SDK5 ble_app_sleepmode例子可能有点不同的SDK,但醒来之后SDK之间非常相似的序列。我坚持朝着最近的SDK。
非常感谢你的帮助。我将搬到最新的SDK和管理使一切工作与你的技巧。这个主题可以被关闭。
Aurelien
嗨Avouaill,
在睡眠模式下的设备关闭XTAL16时钟生成的关键UART,醒来之后你将不得不等待为了XTAL16定居。最安全的地方,确保XTAL16已经定居在app_on_ble_powered回调(因为核心还需要XTAL16为了经营),经过这个函数,只要你不睡觉设备将XTAL16结算,做好准备,你将能够通过UART接收数据。
由于MT_dialog
你好,
谢谢你的回答。
我实际使用的版本V.150.2,我找不到任何app_on_ble_powered函数。你知道有一个相当于我用的版本。
谢谢提前
问候
嗨Avouaill,
在所有回调叫app_on_ble_powered SDK5版本,甚至在第一SDK的SDK5.0.2.1 5版本中,我假设您正在使用SDK3。在这种情况下没有回调,你可以附上源代码和相关的钩,您可以将代码是app_asynch_trm()函数。但我强烈建议搬到SDK 5。
由于MT_dialog
你好,
好的我明白了。
我试图做的是醒来BLE模块从延长睡眠模式和发送一个中断到加州大学警告当UART准备好了。
是否可以为我提供一个回调函数可以正常醒来BLE模块所有必要的功能?我将添加中断与需求。
问候
你好,
差不多了,callbcack函数被调用正确,我切换BLE_int内部生成中断在加州大学。
问题是,到底3醒来后,毫无理由不切换BLE_int了。
这是我的回调函数的代码:
空白ext_wakeup_cb(空白)
{
如果(fsleep = = ARCH_EXT_SLEEP_ON)
{
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
{
如果(DEVELOPMENT_DEBUG) {
GPIO_reservations ();
}
}
SetBits32 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);
fsleep = ARCH_SLEEP_OFF;
}
其他的
fsleep = ARCH_EXT_SLEEP_ON;
GPIO_SetActive (GPIO_PORT_0 GPIO_PIN_7);/ /信号警告UART uC是准备好了
wkupct_enable_irq (0 x40 0 x00 1,0);
wkupct_register_callback (ext_wakeup_cb);
GPIO_SetInactive (GPIO_PORT_0 GPIO_PIN_7);/ /信号警告UART uC是准备好了
}
函数一定是错的,我不明白。
谢谢提前
嗨Avouaill,
我不确定如果你正在寻找什么,但为了迫使醒来的祝福(没有等待事件调度应用程序将不得不迫使BLE醒来)你必须调用arch_ble_force_wakeup ();后做设备应该尽快醒来过程的核心和核心唤醒了app_asynch_trm()将得到执行。
关于你提到的问题后,我认为你不该看到的切换如你所愿,我不看到任何回调函数调用periph_init()函数为了你的针被初始化,所以也许时代,设备切换销只是发生设备和外设清醒。一些评论,不需要调用GPIO_reservations(),该函数的调用在系统初始化后,不需要再次调用它。而不是使ble核心通过直接写寄存器可以使用arch_ble_force_wakeup()函数,如果我没记错的话还有app_ble_force_wakeup()的SDK 3完全相同。也允许我再次提到你正在请求醒来BLE核心并不意味着核心立即醒来,核心就会清醒设备进入app_asynch_trm()正如我前面提到的。请检查在SDK5 ble_app_sleepmode例子可能有点不同的SDK,但醒来之后SDK之间非常相似的序列。我坚持朝着最近的SDK。
由于MT_dialog
你好,
非常感谢你的帮助。
我将搬到最新的SDK和管理使一切工作与你的技巧。
这个主题可以被关闭。
问候
Aurelien