关于UART2数据传输的问题

3个帖子/ 0个新帖子
最后发表
sklin
离线
最后看到:6年1个月前
专家
加入:2014-08-12 08:01
关于UART2数据传输的问题

嗨对话框
我正在做一个使用UART2进行串行数据传输的实验。
如果我将电源模式设置为激活模式,它总是工作得很好。
# undef CFG_EXT_SLEEP
# undef CFG_DEEP_SLEEP

现在我将睡眠模式配置为扩展睡眠。
我在void peripher_init (void)中添加了uart2初始化,该初始化在函数BLE_WAKEUP_LP_Handler(void)中调用,以便每次BLE唤醒后重新配置uart2。
然后,如果我使用uart2_write()来传输数据立即,我得到的PC COM端口是不可读的代码。

SetBits16 (CLK_PER_REG UART2_ENABLE 1);
uart2_init (UART_BAUDRATE_115K2 3);
uart2_flow_off ();
/ / uart2_write (printStr sizeof (printStr), NULL);

但如果我不立即传输数据,而是在应用程序消息处理器(TASK_APP)中传输数据,它可以正常工作。

我似乎不能使用UART2在BLE醒来时立即传输数据,必须等待一会儿。
我想是因为UART2的时钟信号不稳定,对吗?

PY_Dialog
离线
最后看到:3年1个月前
工作人员
加入:2014-08-25“
嗨Sklin,

嗨Sklin,

最好不要在uart_init之后立即调用uart_write。您可以尝试将它放在peripher_init()的末尾,这将工作,但请不要发送太长的数据,因为它仍在初始化阶段。放置发送的inTASK_APP是个不错的选择。

的问候!
珀西余

sklin
离线
最后看到:6年1个月前
专家
加入:2014-08-12 08:01
好的,谢谢。

好的,谢谢。