东莞制作网站公司企业网站风格

news/2025/9/30 10:47:08/文章来源:
东莞制作网站公司,企业网站风格,好用的在线代理网页,led灯散热片技术支持 东莞网站建设STM32——串口实践 1.蓝牙控制点灯 项目需求 通过蓝牙模块#xff0c;实现手机控制蓝牙插座/风扇/灯。 本质#xff1a; 采用蓝牙的透传功能#xff1b; 控制 IO 口的输出。 硬件清单 HC01蓝牙模块 CH340 杜邦线 项目设计 HC01_TX – RX1 HC01_RX – TX1 项目…STM32——串口实践 1.蓝牙控制点灯 项目需求 通过蓝牙模块实现手机控制蓝牙插座/风扇/灯。 本质 采用蓝牙的透传功能 控制 IO 口的输出。 硬件清单 HC01蓝牙模块 CH340 杜邦线 项目设计 HC01_TX – RX1 HC01_RX – TX1 项目实现 串口非中断法 HAL_UART_Receive(huart1, ch, 19, 100); //HAL_UART_Transmit(huart1, ch, strlen(ch), 100); //printf((char *)ch); printf(%s, ch); if (!strcmp((const char *)ch, open)) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) GPIO_PIN_RESET)printf(LED1已打开\n); }else if(!strcmp((const char *)ch, close)) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) GPIO_PIN_SET)printf(LED1已关闭\n); } else {if(ch[0] ! \0)printf(指令发送错误%s, ch); }串口中断法 printf(收到数据); if (!strcmp((const char *)UART1_RX_Buffer, open)) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) GPIO_PIN_RESET)printf(LED1已打开\n); }else if(!strcmp((const char *)UART1_RX_Buffer, close)) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) GPIO_PIN_SET)printf(LED1已关闭\n); } else {if(UART1_RX_Buffer[0] ! \0)printf(指令发送错误%s, UART1_RX_Buffer); }2.WI_FI点灯 项目需求 通过ESP8266模块实现手机控制wifi插座/风扇/灯。 硬件清单 ESP8266模块 CH340 杜邦线 项目实现 注意 工作中一般不直接在中断服务函数里处理数据而是在收到数据后直接丢给队列再处理数据 在中断服务函数里尽量减少使用延时函数及打印函数。 AP模式 #define SIZE 12char buffer[SIZE]; char LJWL[] ATCWJAP\TP-LINK_3E30\,\18650711783\\r\n; //入网指令 char LJFWQ[] ATCIPSTART\TCP\,\192.168.0.130\,8880\r\n; //连接服务器指令 char TCMS[] ATCIPMODE1\r\n; //透传指令 char SJCS[] ATCIPSEND\r\n; //数据传输开始指令 char CQMK[] ATRST\r\n; //重启模块指令 char AT_OK_Flag 0; //OK返回值的标志位 char AT_Connect_Net_Flag 0; //WIFI GOT IP返回值的标志位 // 接收完成回调函数收到一个数据后在这里处理 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {// 判断中断是由哪个串口触发的if(huart-Instance USART1){// 判断接收是否完成UART1_RX_STA bit15 位是否为1if((UART1_RX_STA 0x8000) 0){// 如果已经收到了 0x0d 回车if(UART1_RX_STA 0x4000){// 则接着判断是否收到 0x0a 换行if(buf 0x0a){// 如果 0x0a 和 0x0d 都收到则将 bit15 位置为1UART1_RX_STA | 0x8000;// 查看是否收到 WIFI GOT IPif(!strcmp((uint8_t *)UART1_RX_Buffer, WIFI GOT IP))AT_Connect_Net_Flag 1;// 查看是否收到 OKif(!strcmp((uint8_t *)UART1_RX_Buffer, OK))AT_OK_Flag 1;// 查看是否收到 FAILif(!strcmp((uint8_t *)UART1_RX_Buffer, FAIL)){int i 0;for(i 0; i 5; i){HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_8);HAL_Delay(1000);}HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);printf(CQMK);}// 灯控指令if(!strcmp((uint8_t *)UART1_RX_Buffer, L-1))HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);if(!strcmp((uint8_t *)UART1_RX_Buffer, L-0))HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);memset(UART1_RX_Buffer, 0, UART1_REC_LEN);UART1_RX_STA 0;}else// 否则认为接收错误重新开始UART1_RX_STA 0;}else // 如果没有收到了 0x0d 回车{//则先判断收到的这个字符是否是 0x0d 回车if(buf 0x0d){// 是的话则将 bit14 位置为1UART1_RX_STA | 0x4000;}else{// 否则将接收到的数据保存在缓存数组里UART1_RX_Buffer[UART1_RX_STA 0X3FFF] buf;UART1_RX_STA;// 如果接收数据大于UART1_REC_LEN200字节则重新开始接收if(UART1_RX_STA UART1_REC_LEN - 1)UART1_RX_STA 0;}}}// 重新开启中断HAL_UART_Receive_IT(huart1, buf, 1);} } int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();/* USER CODE BEGIN 2 */HAL_NVIC_SetPriority(SysTick_IRQn,0,0);// 开启接收中断HAL_UART_Receive_IT(huart1, buf, 1);HAL_UART_Transmit(huart2, lets go!!\r\n, strlen(lets go!!\r\n), 100);//发送联网AT指令并等待成功printf(LJWL);//while(!AT_Connect_Net_Flag);while(!AT_OK_Flag) HAL_Delay(50);AT_OK_Flag 0;//发送连服务器指令并等待成功printf(LJFWQ);while(!AT_OK_Flag) HAL_Delay(50);AT_OK_Flag 0;//发送透传模式指令并等待成功printf(TCMS);while(!AT_OK_Flag) HAL_Delay(50);AT_OK_Flag 0;//发送数据传输指令并等待成功printf(SJCS);while(!AT_OK_Flag) HAL_Delay(50);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */printf(liangxu shuai\r\n);HAL_UART_Transmit(huart2, hello liangxu\r\n, strlen(hello liangxu\r\n),100);HAL_Delay(3000);}/* USER CODE END 3 */ }STA模式 #include stdio.h #include string.h char buffer[SIZE]; //1 工作在路由模式 char LYMO[] ATCWMODE2\r\n; //2 使能多链接 char DLJ[] ATCIPMUX1\r\n; //3 建立TCPServer char JLFW[] ATCIPSERVER1\r\n; // default port 333 //发送数据 char FSSJ[] ATCIPSEND0,5\r\n; char AT_OK_Flag 0; //OK返回值的标志位 char AT_Connect_Net_Flag 0; //WIFI GOT IP返回值的标志位 char Client_Connect_Flag 0; // 接收完成回调函数收到一个数据后在这里处理 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {// 判断中断是由哪个串口触发的if(huart-Instance USART1){// 判断接收是否完成UART1_RX_STA bit15 位是否为1if((UART1_RX_STA 0x8000) 0){// 如果已经收到了 0x0d 回车if(UART1_RX_STA 0x4000){// 则接着判断是否收到 0x0a 换行if(buf 0x0a){// 如果 0x0a 和 0x0d 都收到则将 bit15 位置为1UART1_RX_STA | 0x8000;// 查看是否收到 WIFI GOT IPif(!strcmp(UART1_RX_Buffer, WIFI GOT IP))AT_Connect_Net_Flag 1;// 查看是否收到 OKif(!strcmp(UART1_RX_Buffer, OK))AT_OK_Flag 1;// 查看是否收到 FAILif(!strcmp(UART1_RX_Buffer, 0,CONNECT))Client_Connect_Flag 1;// 灯控指令if(!strcmp(UART1_RX_Buffer, L-1))HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);if(!strcmp(UART1_RX_Buffer, L-0))HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);memset(UART1_RX_Buffer, 0, UART1_REC_LEN);UART1_RX_STA 0;}else// 否则认为接收错误重新开始UART1_RX_STA 0;}else // 如果没有收到了 0x0d 回车{//则先判断收到的这个字符是否是 0x0d 回车if(buf 0x0d){// 是的话则将 bit14 位置为1UART1_RX_STA | 0x4000;}else{// 否则将接收到的数据保存在缓存数组里UART1_RX_Buffer[UART1_RX_STA 0X3FFF] buf;UART1_RX_STA;// 如果接收数据大于UART1_REC_LEN200字节则重新开始接收if(UART1_RX_STA UART1_REC_LEN - 1)UART1_RX_STA 0;}}}// 重新开启中断HAL_UART_Receive_IT(huart1, buf, 1);} } int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();/* USER CODE BEGIN 2 */HAL_NVIC_SetPriority(SysTick_IRQn,0,0);// 开启接收中断HAL_UART_Receive_IT(huart1, buf, 1);HAL_UART_Transmit(huart2, lets go\r\n, strlen(lets go\r\n), 100);printf(LYMO);while(!AT_OK_Flag) HAL_Delay(50);AT_OK_Flag 0;printf(DLJ);while(!AT_OK_Flag) HAL_Delay(50);AT_OK_Flag 0;printf(JLFW);while(!Client_Connect_Flag) HAL_Delay(50);AT_OK_Flag 0;if(Client_Connect_Flag){HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);}/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///4 发送数据printf(FSSJ);HAL_Delay(2000);printf(Hello);HAL_Delay(2000);}/* USER CODE END 3 */ }

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

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

相关文章

Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains

[NIPS20] 建立“位置坐标-标量”的隐式神经表示过程中使用傅里叶特征映射对MLP性能增益的理论证明Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains 原文:从理论层面解释位…

「突发奇想,灵光乍现」 - hello

1. 困住自己的,是一种执着,和来自沉迷于某种欲望的享受。

BST(self saved)

#include<iostream> #include<cstdio> using namespace std; int root,tot; struct bst {int v,l,r,vnum,lnum;bst(){v=l=r=vnum=lnum=0;}void nw(int a){v=a;vnum=1;lnum=0;l=r=0;} }tree[1000010]; stru…

jenkins 用户权限 管理配置

这里使用插件 Role-based Authorization Strategy下载插件 插件 管理 搜 Role-based Authorization Strategy 点击下载 安装即可配置Role-based Authorization Strategy 插件 系统管理-全局安全配置-授权策略 选择,…

DirectX- DLL修复工具 免费下载!绿色单文件版!安装使用教程

软件介绍Cloudbox工具箱本身只有7.6M左右大小,一款开源免费的 Windows 聚合工具箱,主要分为四个部分,装机检测、系统常用、影音下载、其他工具。每一类中都有40多款软件,集成 198 款工具,提供绿色免安装软件,能简…

测试集成CI/CD的五大实践:构建高效质量保障体系

测试集成CI/CD的五大实践:构建高效质量保障体系 在数字化转型浪潮下,软件交付速度已成为企业竞争力的关键指标。DevOps实践正在重塑软件开发生命周期,而持续集成/持续交付(CI/CD)作为其核心环节,正面临质量保障的新…

Windows系统Web UI自动化测试学习系列4--开源体系平台测试项目环境部署搭建

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

DirectX修复工具官方中文增强版下载!下载安装教程(附安装包),0xc000007b错误解决办法

软件介绍 DirectX 是 Microsoft 提供的一组用于处理多媒体任务的技术集合,尤其广泛应用于图形和音频渲染领域。如果系统缺少某些 DirectX 组件或者这些组件损坏,则可能导致游戏或应用程序无法正常运行。DirectX修复工…

网站图怎么做哪个网站有ae免费模板

来源&#xff1a;AI前线作者 | Timothy B.Lee译者 | 王强策划 | 刘燕自动驾驶技术行业今天正处于一种奇怪的状态。过去多年来&#xff0c;整个行业已经在自动驾驶技术上投入了庞大的资金&#xff0c;其中许多公司都拥有了看起来跑得不错的自动驾驶汽车原型。但据我所知&#xf…

临沂做wish网站零基础做电商从什么做起

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

五莲县网站建设wordpress用什么linux

分析 很多时间&#xff0c;不管是vue2&#xff0c;还是vue3开发中都会遇到&#xff0c;动态渲染图片的功能&#xff0c;但是为什么我们直接将图片的路径直接赋值给变量的时候&#xff0c;图片渲染不出来&#xff0c;而通过require引入加载图片后却能正常渲染呢&#xff1f;主要…

网站建设咨询什么当当网网站建设步骤

Zookeeper1.Zookeeper概述Zookeeper是一个工具&#xff0c;可以实现集群中的分布式协调服务。所谓的分布式协调服务&#xff0c;就是在集群的节点中进行可靠的消息传递&#xff0c;来协调集群的工作。Zookeeper之所以能够实现分布式协调服务&#xff0c;靠的就是它能够保证分布…

【VMware Workstation】Debian 13 桌面版安装

下载系统镜像 访问 debian 官网下载网页下载 debian-13.1.0-amd64-DVD-1.iso 系统镜像下载列表页面:https://www.debian.org/distrib/ 文件名称:debian-13.1.0-amd64-DVD-1.iso MD5:E883FB27DDC95057000F181E6E982…

网站做的app有哪些wordpress文章图片显示不出来

自动生成实体类、Mapper、Mapper.xml文件搭建Spring Boot Mysql MyBatis 项目核心配置pom.xml创建表配置文件生成文件结果项目结构搭建Spring Boot Mysql MyBatis 项目idea 可直接创建相应的项目及配置核心配置pom.xmlmysqlmysql-connector-java5.1.38org.springframework.…

B树,B+树技术分享

分享B树和B+树中学习过程中的知识点B树概念+使用操作 为什么要发明B树? 1.磁盘文件I/O太慢 2.BTS的局限性:二叉平衡树每个节点就放一个关键字,所以搜索起来效率太慢了,比如每个节点就放一个关键字,要放一亿条数据就…

【瑶池数据库动手活动及话题精选(体验Dify on DMS,参与Meta Agent讨论)】

一、动手活动 基于 Dify on DMS 快速构建客服对话数据质检服务,完成任务可领积分、定制手办等好礼! 企业面临传统开发环境割裂及数据流转不畅的挑战?本方案基于数据管理服务 DMS,深度集成云数据库 RDS 与百炼大模型…

无管理员权限电脑完成MySQL数据库创建流程

背景:公司电脑,没有管理员权限 阶段一:准备阶段 步骤一:选择MySQL版本。 个人开发推荐使用绿色版本5.7.44 步骤二:获取资源。 链接:https://downloads.mysql.com/archives/community/ 资源名:Windows (x86, 64-…

上海网络推广公司网站网站建设服务器选择

全国知识图谱与语义计算大会是由中国中文信息学会语言与知识计算专委会定期举办的全国年度学术会议。CCKS 2018吸引了来自学术界和工业界的超800人参加。2019 年全国知识图谱和语义计算大会(www.ccks2019.cn) 将于2019年8月24日至8月27日在杭州召开&#xff0c;CCKS 2019的主题…

组建 网站开发团队wordpress小工具空格

1.微服务云应用平台(ServiceStage),可以完成以下哪些功能?(多选)A.创建应用依赖计算资源B.使用 AOS 模板自动化应用编排C.查看应用各项指标D.在线可视化升级应用E.容器应用需要自己在 Service Storage 上搭建容器管理平台,比如需自己搭建 kubernetes 管理 docker 容器应用Answ…

时钟设计优化实战

1、时钟设计,芯片性能的节拍器 在现代 IC 设计中,时钟网络的优化是实现高性能、高可靠性和低功耗的关键。本文聚焦四大核心技术:CTS 优化、DCD 最小化、时钟门控和时钟域交叉(CDC),带你深入理解并掌握先进的时钟…