news 2026/4/18 12:58:45

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 ),避免半满时触发不必要的中断,仅保留空闲中断触发回调。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 12:40:48

AI大模型:Python电影推荐系统 协同过滤推荐算法 Django豆瓣电影 爬虫 大数据实战 毕业设计 (源码+文档)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…

作者头像 李华
网站建设 2026/4/18 5:38:59

【大数据毕设源码分享】springboot基于大数据的音乐数据分析系统的设计与实现(程序+文档+代码讲解+一条龙定制)

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

作者头像 李华
网站建设 2026/4/18 5:34:50

Ivan Zhao | 蒸汽、钢铁与无限心智

注&#xff1a;本文为英文引文&#xff0c;机翻未校。 如有内容异常&#xff0c;请看原文。 Steam, Steel, and Infinite Minds 蒸汽&#xff0c;钢铁和无限心智 December 23, 2025 By Ivan Zhao Every era is shaped by its miracle material. Steel forged the Gilded Age…

作者头像 李华
网站建设 2026/4/18 5:35:56

MySQL与openGauss不兼容点对比表

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

作者头像 李华