我遇到了这样一种情况:试图从UART读取数据会中断我的应用程序。我为UART通信配置了两个管脚,并在这些管脚上连接了一个USB-to-TTL适配器。在这种情况下,一切正常,但如果我在没有USB到TTL适配器连接的情况下打开主板电源,调用ad\u uart\u read()时应用程序似乎会停止。我还发现,当我简单地连接RX和TX引脚时,它不会停止。
对于我的应用程序,通过UART进行通信是一个可选功能,我需要应用程序运行,而不管是否连接了RX/TX。
我的配置如下:
//为UART配置两个引脚:
静态常量gpio\u config gpio\u cfg[]={
硬件GPIO引脚配置(硬件GPIO端口1,硬件GPIO引脚2,输出,UART发送,错误),
硬件GPIO引脚配置(硬件GPIO端口1,硬件GPIO引脚4,输出,UART接收,假),
硬件配置端
}
...
静态void periph\u init(void){
硬件gpio配置(gpio cfg);
}
//在单独的任务设置中,从UART读取一个循环:
uart\u device uart=ad\u uart\u open(串行1);
对于(;;){
单位:8μt buf[buf_LEN];
int len=读(uart,buf,buf len,OS\u EVENT\u FOREVER);
}
关键词:
设备:
嗨ainwood87,
正如你在新的帖子中提到的,我相信你遇到的问题是由使用延长睡眠造成的。请在你的新帖子中查看我们的建议。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/uart-read-fails-after-few-attempts
谢谢,下午好