嗨对话小组,
我们的项目使用两个UART,一个(UART1)进行调试,另一个(UART2)与GSM模块进行通信。
如果我设置了静态const sleep_state_t app_default_sleep_mode = arch_sleep_off,则可以在JTAG调试模式下进行Tx / Rx数据并在闪存模式下刻录。但是如果我更改app_default_sleep_mode = arch_sleep_on.uart1和uart2可以在JTAG调试模式下工作。但是如果我将FW刻录到Flash Init.only Uart1工作,UART2无法发送和接收数据。
我有两个问题:
1.为什么如上所存在?
2.我尝试配置app_default_sleep_mode = arch_sleep_on.and,当我想使用uart2时,我将睡眠模式更改为arch_set_sleep_mode(Arch_sleep_off),但仍然可以不起作用。谢谢。
设备:
嗨钟,
我并不确定我得到了这种情况,你完全做了什么,你究竟尝试打印,但我的假设是你试图打印并在设备上进入睡眠时使用UART模块当XTAL16断电或尚未结算时,为了打印数据,您需要XTAL稳定,以便生成所需的波特率。SDK实现了ARCH_PRINTF()函数功能以用于调试,这将推动您想要在队列中打印的数据,并仅当设备具有确定和正确工作的XTAL16时才会通过UART发送它们送达BLE事件)。因此,您可以确保XTAL16正确解决并运行(一个回调,您确定XTal16正在运行的是App_On_ble_powered,因此您可以将打印功能放在该回调中,它们应该是OK)。我假设你在睡眠模式和调试中的设备打印的原因是因为调试器仍然附加到设备上,所以它不会睡觉(你在通过JTAG下载FW时Dettach调试器吗?)。显然,当运行它从闪存时,设备在睡眠模式下正确地进行了正确,这就是为什么没有打印。
谢谢mt_dialog.