登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
IoT云平台
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
6
0
0
首页
雷达灯控教程
›
RP2040+RD03E控制LED灯
返回列表
RP2040+RD03E控制LED灯
[ 复制链接 ]
发布帖子
xu@xupt
金牌会员
3
主题
6
回帖
1352
积分
金牌会员
金牌会员, 积分 1352, 距离下一级还需 1648 积分
金牌会员, 积分 1352, 距离下一级还需 1648 积分
积分
1352
私信
6人留言
楼主
雷达灯控教程
944
6
2024-4-14 22:33:00
[i=s] 本帖最后由 xu@xupt 于 2024-4-14 22:41 编辑 [/i]
> 本帖最后由 xu@xupt 于 2024-4-14 22:40 编辑 > 本帖最后由 xu@xupt 于 2024-4-14 22:37 编辑 首先,感谢以下大神: [https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44318&extra=page%3D1](https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44318&extra=page%3D1) ## 元件清单 * RP2040-pico * RD03E * Arduino ## 代码 ``` // 定义一个名为FrameState的枚举类型,用于表示数据帧的接收状态 enum FrameState { IDLE, // 空闲状态,等待接收新的数据帧 RECEIVING, // 正在接收数据帧 COMPLETE // 数据帧接收完成 }; void setup() { // 设置串口1的RX引脚为1,TX引脚为0 Serial1.setRX(1); Serial1.setTX(0); // 初始化串口1,波特率为256000 Serial1.begin(256000); // 初始化串口,波特率为9600 Serial.begin(9600); // 设置内置LED引脚为输出模式 pinMode(LED_BUILTIN, OUTPUT); } void loop() { // 如果串口1有可用数据 if (Serial1.available() > 0) { // 读取一个字节的数据 byte incomingByte = Serial1.read(); // 定义一个静态变量state,用于保存数据帧的接收状态,初始状态为IDLE static FrameState state = IDLE; // 定义一个静态数组frame,用于保存接收到的数据帧,最大长度为5 static byte frame[5]; // 定义一个静态变量frameIndex,用于记录当前接收到的数据帧字节数,初始值为0 static byte frameIndex = 0; // 根据当前的接收状态进行不同的处理 switch (state) { case IDLE: // 如果接收到的字节是0xAA,表示一个新的数据帧开始 if (incomingByte == 0xAA) { // 将接收状态切换为RECEIVING state = RECEIVING; // 重置frameIndex为0 frameIndex = 0; // 将接收到的字节保存到frame数组中,并将frameIndex加1 frame[frameIndex++] = incomingByte; } break; case RECEIVING: // 如果frameIndex小于5,表示数据帧还未接收完成 if (frameIndex < 5) { // 将接收到的字节保存到frame数组中,并将frameIndex加1 frame[frameIndex++] = incomingByte; // 如果frameIndex等于5,并且最后一个字节是0x55,表示数据帧接收完成 if (frameIndex == 5 && frame[frameIndex - 1] == 0x55) { // 将接收状态切换为COMPLETE state = COMPLETE; } } else { // 如果frameIndex大于等于5,表示接收到的数据帧长度超过了预期,将接收状态切换为IDLE state = IDLE; } break; case COMPLETE: // 输出接收到的完整数据帧,以十六进制格式打印每个字节 Serial.print(frame[0], HEX); Serial.print(frame[1], HEX); Serial.print(frame[2], HEX); Serial.print(frame[3], HEX); Serial.println(frame[4], HEX); // 调用processDataFrame函数处理接收到的数据帧 processDataFrame(frame); // 将接收状态切换为IDLE,准备接收下一个数据帧 state = IDLE; break; } } } void processDataFrame(byte* frame) { // 解析数据帧 // 由于distance是小端字节序,我们直接组合两个字节 55 00 转存为 00 55 // 将第1个和第2个字节组合成一个16位的整数,表示距离值 int distance = frame[1] | (frame[2] << 8); // 第4个字节表示手势信息 byte gesture = frame[3]; // 如果距离大于等于150 if (distance >= 150) { // 点亮内置LED digitalWrite(LED_BUILTIN, HIGH); } else { // 熄灭内置LED digitalWrite(LED_BUILTIN, LOW); } // 输出解析后的数据 Serial.print("Received data frame: Distance = "); Serial.print(distance); Serial.print(" cm, Gesture = "); Serial.println(gesture, HEX); ``` ## 现象  [[https://www.bilibili.com/video/BV1WE421T7rp?t=10.5](https://www.bilibili.com/video/BV1WE421T7rp?t=10.5)]()
点赞
0
收藏
0
淘帖
0
────
0
人觉得很赞
────
回复
使用道具
举报
6 回复
电梯直达
正序浏览
倒序浏览
正序浏览
沙发
1084504793
回复
使用道具
举报
2024-4-15 08:08:26
赞
回复
评论
使用道具
举报
板凳
1055173307
回复
使用道具
举报
2024-4-15 08:21:26
学习学习
回复
评论
使用道具
举报
地板
18350766600@139
回复
使用道具
举报
2024-4-15 08:26:22
学习一下
回复
评论
使用道具
举报
5
#
WT_0213
回复
使用道具
举报
2024-4-15 09:12:07
不错
回复
评论
使用道具
举报
6
#
爱笑
回复
使用道具
举报
2024-4-15 09:18:29
补考通过!
回复
评论
使用道具
举报
用心做好保姆工作
7
#
lazy
回复
使用道具
举报
2024-4-15 10:49:10
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
返回
今日推荐
基于Ai-WB2的HomeAssistant实现RGB彩灯控制功能
BU04 原理图
基于 Ai-WV01-32S+STM32移植 emMCP 实现 AI 语音控制点灯
AiPi-PalChatV1_“湾湾小何”提示音测试固件V2.9_UART-MCP
[WB2] 实现自动发现局域网下的设备
热帖排行
论坛应该出一个发帖时间排序
基于Ai-WB2的HomeAssistant实现RGB彩灯控制功能
BU04 原理图
小安派-Eyes-S1 - UART
小安派-Eyes-S1 - PWM
小安派-Eyes-S1 - TIMER
VC-02 Custom Audio Replacement - pcm.bin Generated but Not I
基于 Ai-WV01-32S+STM32移植 emMCP 实现 AI 语音控制点灯
统计信息
会员数: 30517 个
话题数: 44685 篇
首页
分类
我的