w801 串口与 RCWL-1633 超声波测距模块通信问题

发布于 2025-02-14 15: 29: 03

问题描述:
代码如下图:
image. png
image. png

我要使用一个超声波测距模块与 w801 通信, 通过 uart3 给超声波模块发送一字节 0xA0 就可以通过 uart3 返回所测距离, 返回的是三个 hex 的数据
代码里面实现的是: 每间隔 2s 通过 uart3 口发送一个 hex: 0XA0 ; 分别用字符串的形式和 hex 的形式 printf 打印从 uart3 接收到的数据.

问题背景:
1. 使用串口助手与 MCU 通信正常, 如下图:
image. png

2. 我使用串口助手与超声波模块通信, 超声波模块也正常返回, 如下图:
image. png

但是我直接将模块与 mcu 主板连接调试窗口就会打印以下的字样:
image. png

我通过 assert 提示进入相关的代码: 1470 行是 freertos 获取队列信号量的函数
1160 行是 freertos xqueuegivefromisr 函数中的断言

如果我把信号量相关的代码给屏蔽掉, 使用纯裸机串口跑, 发现会一直进入接收回调函数 (即使没有数据发送给 mcu) , 如下图
image. png

想问各位大佬该如何解决呢

查看更多

关注者
0
被浏览
174
isme
isme 认证专家 2025-02-14
冰镇大西瓜

这个错误提示, 大概可能是任务在消息队列没有创建, 或者消息队列被创建之前就有程序调用了消息队列发送或接收相关 api.

2 个回答
yangxiaolin1
yangxiaolin1 5 天前
这家伙很懒, 什么也没写!

@isme 老师, 我还是没解决这个问题, 您知道是什么原因吗, 明明没有给串口发送数据, 但是它还是一直进入回调

撰写答案

请登录后再发布答案, 点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览