STM32 CubeIDE 使用蓝牙模块实现手机控制LED灯

开启UART3异步模式,配置波特率9600。

开启USART3中断,添加DMA 通道。

将蓝牙模块连接到开发板上注意引脚对应

数据回显

if(huart == &huart3){ HAL_UART_Transmit_DMA(&huart3, receiveData, Size); } 当确认是串口3的回调事件后,立即通过DMA将接收到的数据原封不动发回

帧头与长度校验

if(receiveData[0] == 0xAA){ if(receiveData[1] == Size){ 协议约定帧头为 0xAA ,并通过 receiveData[1] 存储的预期长度,和实际接收长度 Size 做比对。

和校验验证

uint8_t sum = 0; for(int i = 0; i < Size - 1; i++){ sum += receiveData[i]; } if(sum == receiveData[Size-1]){ 计算除最后一个字节外所有数据的累加和,再与最后一个字节(校验位)比对。

LED控制

for(int i=2; i<Size-1; i+=2){ GPIO_PinState state = GPIO_PIN_SET; if(receiveData[i+1] == 0x00){ state = GPIO_PIN_RESET; } if(receiveData[i] == 0x01){ HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, state); }else if(receiveData[i] == 0x02){ HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, state); }else if(receiveData[i] == 0x03){ HAL_GPIO_WritePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin, state); } } ( receiveData[i] ):指定LED通道( 0x01 =红、 0x02 =绿、 0x03 =蓝)。 ( receiveData[i+1] ):指定LED状态( 0x00 =熄灭、非0=点亮)。 这种“通道+状态”的指令格式,支持同时控制多个LED。
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, receiveData, sizeof(receiveData)); HAL_DMA_DISABLE_IT(&hdma_usart3_rx, DMA_IT_HT); 重新开启下一轮的空闲帧DMA接收,保证串口通信的连续性。 关闭DMA的半传输中断( DMA_IT_HT ),避免半满时触发不必要的中断,仅保留空闲中断触发回调。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查重去 AI 双保险!宏智树 AI:让论文告别 “标红焦虑” 的智能优化神器

还在为查重率反复超标熬夜改稿&#xff1f;好不容易把重复率压到 10%&#xff0c;却被 AIGC 检测系统标红 80%&#xff1f;用同义词替换降重&#xff0c;结果论文读起来像 “天书”&#xff0c;学术逻辑支离破碎&#xff1f;随着高校和期刊的学术检测技术全面升级&#xff0c;“…

【大数据毕设源码分享】基于python的时尚女装抖音号评论数据分析系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

记一次 DOIO KB04-B01 改映射

好像不太能用 Ubuntu,开的 Windows 一下子搞完了,直接写进硬件根本不用 QMK,但是根据 DeeK 的说法按照法律写进硬件之后就不能七天无理由退换了 下载属于 KB04-B01 的 via.json 下载 VIA 打开 VIA,在左上角 Files …

docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)

1.拉取镜像 # 或者已经编译了x86的postgis、pgvector的18.1 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres-with-gis:18.1 # arrch64架构 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_postgres-with-gis:18.12.创建一个 …

【大数据毕设全套源码+文档】基于python的爬虫与文本挖掘的网络舆情监控系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

宏智树 AI 太懂学术!AIPPT 一键搞定开题 / 答辩 / 汇报,告别 PPT 制作内耗

做学术 PPT 还在熬大夜排版&#xff1f;开题报告 PPT 逻辑混乱被导师打回&#xff0c;论文答辩 PPT 数据图表粗糙拉低专业度&#xff0c;工作汇报 PPT 写成流水账抓不住重点&#xff1f;相信不少高校师生和科研人都有过这样的 PPT 制作内耗&#xff0c;明明核心研究内容很扎实&…

宏智树 AI:终结课程论文 “无效内卷”,小白也能写出高分范本

作为深耕论文写作科普的教育博主&#xff0c;每到学期末&#xff0c;后台就被 “课程论文怎么写” 的求助刷屏&#xff1a;“翻遍教材找不到合适选题”“文献堆了几百篇却不会梳理”“熬了三天写的初稿&#xff0c;导师说逻辑混乱要重写”。其实课程论文不是 “凑字数交差”&am…

无线网络仿真:无线网络基础_(19).网络协议栈仿真

网络协议栈仿真 在无线网络仿真中&#xff0c;网络协议栈的仿真是一个非常重要的环节。网络协议栈决定了数据在不同网络层之间的传输和处理方式。通过对网络协议栈的仿真&#xff0c;我们可以深入理解网络协议的工作原理&#xff0c;优化网络性能&#xff0c;以及测试新的协议…

机器学习:基于python新闻推荐系统 热点新闻分析 可视化分析 协同过滤推荐算法 Django框架 冷启动 推荐算法 计算机毕业设计(源码+文档)

博主介绍&#xff1a;✌全网粉丝10W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题 1. 引入:当“量子加速”变成“量子堵车”——一个架构师的真实困境 凌晨三点,张磊盯着监控屏幕上的红色预警,揉了揉发涩的眼睛。作为某AI公司的资深架构师,他正带领团队搭建量子增强型生成式AI系统:用量子计算的并行…

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”?Why Is It Said “ChatGPT the Most Human-Like Wisdom Traits“?

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”&#xff1f;这句话的提出&#xff0c;源于一种深刻的观察&#xff1a;在与ChatGPT的互动中&#xff0c;人们常会感受到其回应的结构、逻辑与克制&#xff0c;仿佛触及了某种“理想化”的人类智慧形态。但这并非…

学术写作新选择:6个AI优化平台评测,智能润色改善论文逻辑与流畅性

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

基于提供的镜像构建PostGIS、pgvector 的 PostgreSQL 18镜像的Dockerfile

编辑 Dockerfile # 使用原始镜像作为基础 FROM registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres:latest# 设置环境变量避免安装过程中交互式提示 ENV DEBIAN_FRONTENDnoninteractive# 安装 PostGIS 和相关依赖 RUN apt-get update && \apt-get install -y --…

【大数据毕设源码分享】基于springboot+Hadoop的豆瓣电子图书推荐的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI改写技术实测:6款学术工具如何高效提升论文语言表达水平

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

python: excel 两个工作表中的员工比对

检测系统中的英文字体:import matplotlib.font_manager as fm# 列出系统中所有支持中文的字体 fonts = fm.findSystemFonts(fontpaths=None, fontext=ttf) chinese_fonts = [] for font in fonts:try:font_prop = fm.…

[DASCTF Oct X 吉林工师 欢迎来到魔法世界~]《魔法少女雪殇——光与暗的对决》——剧场版的一些思路

这道题目是buuctf的第十八页的一道题 查了一下全网 比赛的时候0解 现在也没wp 博主刚入门 能力有限 仅能提供部分思路 欢迎各位师傅交流 题目附件给出magic.E01 火眼证据分析打开 在新加卷发现一个与题目同名文件夹 里…

【大数据毕设源码分享】基于springboot吉林省农村产权交易与数据可视化平台的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

MySQL与openGauss不兼容点对比表

MySQL与openGauss不兼容点对比表特性类别MySQL语法/功能openGauss语法/功能不兼容说明自增字段AUTO_INCREMENTGENERATED BY DEFAULT AS IDENTITYMySQL使用AUTO_INCREMENT关键字&#xff0c;openGauss使用IDENTITY列属性字符串类型TINYTEXT, MEDIUMTEXT, LONGTEXTTEXT (统一类型…

【大数据毕设源码分享】基于Python的热门微博数据可视化分析(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…