- 博客(101)
- 收藏
- 关注
原创 学习C++、QT---19(C++的信号与槽的概念引入)
摘要:本文介绍了Qt框架中信号与槽机制的基本使用方法。主要内容包括:1) 通过按钮点击关闭窗口的简单示例演示信号与槽的连接方式;2) Qt Creator中两种连接信号与槽的可视化操作方法;3) QObject::connect函数的三种语法格式(字符串方式、函数指针方式)及其优缺点对比;4) 信号与槽机制继承关系的说明,指出所有Qt对象都直接或间接继承自QObject类。文章强调信号与槽是Qt实现对象间通信的核心机制,并比较了新老语法在兼容性、错误检查等方面的差异。
2025-07-06 01:19:54
801
1
原创 学习C++、QT---18(C++ 记事本项目的stylesheet)
摘要: 本文介绍了Qt样式表(QSS)的自定义方法,重点讲解如何通过资源文件管理图片资源并应用于UI控件(如QPushButton)。内容包括:1)样式表基础语法(hover、pressed状态控制);2)创建Qt资源文件(.qrc)并添加前缀/文件;3)使用border-image加载图片资源;4)解决布局问题(通过setLayout绑定布局管理器,配合弹簧控件调整间距)。最终实现跨平台UI样式统一和自适应布局效果,避免依赖系统默认渲染。 (字数:150)
2025-07-05 00:19:55
852
原创 学习C++、QT---17(C++ 记事本项目的雏形实现)
摘要:本文介绍了使用Qt开发记事本应用的基本步骤。首先通过原型图设计界面布局,包括添加打开、关闭、保存按钮并设置水平分布。然后添加Widget组件设置背景色,将按钮组件包含其中。接着使用Label和TextEdit组件构建文本区域,通过垂直布局调整整体结构。最后解决了窗口缩放时布局不自动调整的问题,通过在widget.cpp中添加布局设置代码。整个过程展示了Qt界面开发的基本方法和常见问题的解决方案。
2025-07-03 17:05:26
1009
1
原创 学习C++、QT---16(C++的接口、属于QT的第一个项目的启动)
摘要:文章介绍了将抽象类作为接口实现多态的方法,适用于人和狗等具有共同行为的对象。在QT项目创建时,建议选择QWidgetApplication进行图形化界面设计,其中MainWindow适合复杂项目,Widget适合简单项目。创建工程时会自动生成UI文件和相关代码结构,这些底层设计虽然对新手较难理解,但了解基本概念有助于后续开发。作者坦言部分原理较难解释清楚,建议参考官方文档。
2025-07-02 22:11:25
744
原创 学习C++、QT---15(C++的多态、纯虚函数)
摘要:C++多态指通过基类指针操作不同派生类对象,实现统一接口调用不同功能。以万能遥控器为例,基类remoteControl定义虚函数,派生类实现具体功能。多态核心是:1)基类虚函数;2)派生类重写;3)基类指针指向派生类对象。虚函数表(VTable)机制实现动态绑定,对象内存首地址存储指向VTable的指针。抽象类通过纯虚函数(=0)定义,强制派生类实现所有纯虚函数,不可实例化。相比Java的abstract关键字,C++用纯虚函数实现抽象类特性。(150字)
2025-07-01 00:34:03
921
原创 学习C++、QT---14(C++的多重继承、菱形继承问题)
摘要:多重继承允许子类同时继承多个父类的属性和方法,使用逗号分隔父类名。当调用同名函数或变量时,需使用作用域解析符(::)指定父类。菱形继承会导致基类数据在最终派生类中存在多份拷贝,造成冗余和歧义。虚继承(virtual)可解决该问题,确保最终派生类只保留一份基类数据。虚继承的构造函数需由最终派生类直接调用虚基类构造,忽略中间类的虚基类构造,避免多次初始化。虚继承通过统一管理虚基类数据,有效解决菱形继承的核心问题。
2025-06-30 00:59:36
1028
原创 学习C++、QT---13(C++的基类构造函数、虚函数)
本文摘要: C++继承与多态核心知识点解析:1.基类构造函数通过成员初始化列表由派生类调用实现父类变量初始化,需注意访问权限和调用顺序。2.虚函数机制详解:使用virtual声明基类虚函数,派生类用override重写实现多态,调用时执行派生类功能。3.重要规则:含虚函数的基类必须使用虚析构函数,确保派生类对象被基类指针删除时正确调用所有析构函数。这些机制是C++面向对象编程的基础,掌握后可灵活设计类层次结构。(150字)
2025-06-29 07:00:00
502
原创 学习C++、QT---12(C++的继承、权限对继承的影响)
本文主要介绍了C++继承的概念和应用。继承允许子类继承父类的属性和方法,提高代码复用性。文章通过手机类和苹果类的案例说明了继承的基本语法(使用冒号和public关键字)。此外还讲解了分文件优化继承的方法,即将类声明与实现分离到不同文件。最后重点讨论了继承中的权限问题,指出父类成员在不同继承方式下(public/protected/private)的访问权限变化规律,强调权限从public到protected再到private的降级特性,并提供了判断不同区域访问权限的方法。掌握这些继承特性对C++编程至关重要
2025-06-28 02:47:47
1050
原创 学习C++、QT---11(C++析构函数、static静态变量的讲解)
本文讲解了C++中析构函数和静态变量的关键特性。析构函数(~类名)在对象作用域结束或被delete时自动调用,常用于资源管理,如释放动态内存。静态变量(static)属于类而非对象,通过类名::变量名访问,所有对象共享同一值。文中通过实例展示了静态变量计数对象的创建与销毁:构造函数中静态变量自增,析构函数中自减,利用作用域变化演示了析构函数的调用时机。这些特性使代码更规范,资源管理更高效。
2025-06-27 10:57:17
1012
原创 学习C++、QT---10(C++this关键字、new关键字、delete关键字)
C++对象操作关键要点摘要: this关键字: 用于解决构造函数参数与成员变量同名冲突(this->name=name) this指向当前对象地址,验证显示与对象地址一致 支持链式调用,通过返回*this(对象引用)实现连续操作 new/delete关键字: new在堆空间分配对象内存,需手动管理生命周期 栈对象(Car BMW)随作用域结束自动销毁 delete释放堆内存,避免内存泄漏,尤其对长期运行程序至关重要 (字数:149)
2025-06-27 10:52:18
408
原创 学习C++、QT---09(C++构造函数的讲解)
本文介绍了构造函数的基本概念和使用方法。构造函数必须在类中定义,名称与类相同且无返回类型。构造函数分为无参和有参两种形式,编译器会根据对象创建时的参数自动匹配调用。构造函数的优势包括:1)强制初始化成员变量;2)通过参数灵活定制对象初始状态;3)封装初始化细节提高代码可维护性。特别要注意,当类中定义了有参构造函数时,编译器不会自动生成无参构造函数,此时必须显式提供匹配参数。构造函数仅在对象创建时调用一次,确保了对象初始状态的规范性。
2025-06-26 01:00:22
899
原创 学习C++、QT---08(C++函数的重载)
函数重载是指同一函数名根据参数类型、数量或顺序不同实现不同功能。比如print函数可以输出姓名或年龄等不同信息。运算符重载则是重新定义内置运算符(如==、+)对自定义类的操作逻辑,让对象能像内置类型一样运算。例如重载==比较两个对象的属性而非地址,或重载+实现对象相加生成新对象。重载通过编译器自动调用对应函数,简化代码结构,提升可读性和复用性,支持多态扩展,使自定义类型操作更自然高效。
2025-06-25 01:43:59
1114
原创 学习C++、QT---07(C++的权限、C++的引用)
本文摘要: 本文通过银行案例讲解编程中的权限控制概念,用银行账户操作类比面向对象编程中的权限管理。银行数据如余额相当于类中的私有属性,ATM机等公共接口对应类的公共方法,确保数据安全操作。同时解析了C++中的引用机制,表明引用是变量的别名,共享相同内存地址,并指出函数间变量传递的注意事项。最后强调在引用返回时需避免使用局部变量,以防止内存错误。全文通过生活案例生动阐释编程核心概念。
2025-06-24 12:56:51
1126
原创 学习C++、QT---06(真正的成员变量、类的组合)
摘要:本文探讨了C++中成员函数与成员变量的区别,强调真正的成员函数需在类内声明、外部实现,并通过作用域解析运算符(::)指明所属类。同时讲解了类的组合概念,即类中包含其他类对象(如车类包含轮胎类),并详细说明了指针对象的内存分配(new操作)。此外,分析了cout输出字符数组和string对象的底层机制,指出前者依赖'\0'终止符,后者通过size()确定长度。最后以汽车类为例,阐述了嵌套对象的不同访问方式(.和->运算符)。
2025-06-23 11:24:21
866
原创 学习C++、QT---05(结构体和类)
摘要:本文对比了C语言与C++中数组、指针和结构体的异同。重点讲解了C++类对C结构体的改进,包括默认访问权限、string类型处理字符串的优势,以及new/delete内存管理方式。通过具体示例展示了C++类如何实现更安全的字符串操作和更方便的成员访问,同时保留了C语言的指针功能。文章还特别强调了C++中string类型对字符串拼接的支持,以及如何处理非string类型与字符串的拼接问题。
2025-06-23 01:01:43
1120
原创 学习C++、QT---04(Lambda表达式)
本文摘要:文章首先以编程哲理"每条路上都藏着意想不到的宝藏"开篇,随后重点讲解C++流程控制与函数特性。比较了C与C++的for循环写法差异,指出C++允许变量在循环条件中定义。讨论了goto语句的弊端和内联函数(inline)的适用场景,强调其能减小调用开销但需谨慎使用。详细解析了Lambda表达式:介绍其作为匿名函数的优势、基本语法格式,以及三种变量捕获方式(值捕获、全捕获、引用捕获)。通过计算器案例演示Lambda与回调函数的配合使用,指出正确用法应避免显式命名。最后建议通过练习巩
2025-06-22 13:24:42
835
原创 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
本文摘要: C++与C语言的输入输出对比分析:cin/cout对应scanf/printf,endl相当于\n。C++数据类型与C语言相似,但bool类型在C99以上需stdbool.h头文件。头文件<climits>提供整数类型限制信息,但可能被<iostream>间接包含。头文件引用规范:尖括号用于系统库,双引号用于自定义文件。建议显式包含<climits>以确保代码规范性。(150字)
2025-06-21 13:27:21
1004
原创 学习C++、QT---02(创建第一个C++项目、命名空间的讲解)
因为上面也有总结,主要是因为C++怕命名冲突,比如我自己也定义了一个cout如果没有命名空间那么就会编译错误,因为编译器不懂我这个cout是标准库的还是哪里的,就是因为有重复的名字,就会冲突,然后C++又很容易冲突,所以需要命名空间的管理,只要有命名空间的管理那么多少个cout都是可以的。我们需要新建一个.h文件作为命名空间的文件,里面需要写上函数的声明和函数的实现,但是写到后面有经验了就可以也将我们的函数实现的代码封装成一个库文件,和我们C++标准库c标准库的库文件一样。
2025-06-21 13:19:15
601
原创 学习C++、QT---01(安装QT Creator教程、介绍)
我这边安装的是QT5,有QT6和QT5为什么要QT5呢,因为选择QT5是市面上大多数的产品都有QT5的版本,且时间长久有丰富的开发文档和模板对新手小白友好,好上手,但是用QT6的话也是可以的毕竟QT的理念都是差不多的。嘿嘿嘿,我们暂时先把51单片机学完了,学了一些基本的外设和协议,制作了一个智能小车,现在我们需要学习一下QT和C++了目的是提升代码能力,和为了后面学习Linux系统的高级ARM开发板也是巨大的帮助。3基本默认的qmake这个是QT Creator 默认的构建项目工具(按照红色框框)
2025-06-20 03:00:13
1302
原创 学习STC51单片机43(芯片为STC89C52RCRC)智能小车9(语音识别小车)
摘要:本文介绍了非特定语音识别模块SU-03T在智能小车项目中的应用。内容包括模块特性(不区分音色的通用识别)、硬件连接要点(注意VCC接5V)、配置步骤(通过AI平台设置语音指令与电平输出),以及将循迹/避障/跟随模式整合到同一程序的代码实现方法,重点解决了定时器资源冲突问题(需舍弃差速行驶功能)。最后提到通过OLED屏增强交互体验,并规划了后续C++、STM32和Linux的学习路径。
2025-06-19 15:10:29
1307
原创 学习STC51单片机42(芯片为STC89C52RCRC)智能小车9(Wife控制小车、4G控制小车)
TIPs:要是突然之间亿佰特助手无法进入AT指令了之后我们就直接用ch340转TTL的模块接4G模块,亲测直接有用了,然后我们配置4G模块之后,在连接到我们的单片机上,这样我们单片机发送速度就会到服务器上面啦,然后我们服务器发送M1等指令,也会通过内网穿透的IP地址进行发送数据给4G模块,然后4G模块在通过串口发送给单片机,单片机再执行指令,这个就是整个流程啦。那我们就可以通过局域网在同一个网段的IP地址进行通信,因为我们连接的是ESP8266散发出来的热点,所以是同一个网段。那么WIFE小车怎么做?
2025-06-18 00:28:23
802
1
原创 学习STC51单片机41(芯片为STC89C52RCRC)智能小车8(测速显示到OLED显示屏)
摘要:本文介绍了OLED二次开发中显示动态测速功能的方法。通过调用厂商提供的OLED驱动代码(OledFont.h等文件),开发者可以快速实现字符显示功能,避免自行制作字模的繁琐工作。案例中在原有测速模块代码基础上整合了OLED显示功能,通过Oled_Show_Str()函数动态显示速度数据,同时结合蓝牙模块实现了速度数据的无线传输。开发过程体现了"代码复用"理念,直接使用厂商预制的字符库和算法,显著提升了开发效率。
2025-06-17 20:43:19
565
原创 学习STC51单片机40(芯片为STC89C52RCRC)智能小车7(实现测速通过串口反馈到上位机)
摘要:本文详细介绍了嵌入式系统中测速模块的工作原理及代码实现。测速采用槽型光耦模块,通过码盘转动产生高低电平脉冲(每个格子对应一个下降沿中断),利用外部中断计数。计算速度时,需结合码盘格数(20格)和轮子周长(约1cm/格),统计1秒内的脉冲数即可得出线速度。代码实现包含外部中断初始化、定时器配置(0.5ms基准)和串口数据传输,通过状态标志位控制每秒发送一次速度数据。该方案典型体现了嵌入式开发中硬件模块特性与软件算法的协同工作特点。 (149字)
2025-06-16 23:47:29
830
原创 学习STC51单片机39(芯片为STC89C52RCRC)智能小车6(超声波避障小车)
摘要:文章介绍超声波避障小车的实现过程,主要使用HC-SR04超声波模块和SG90舵机。首先改装翻盖垃圾桶代码,优化为分文件结构,封装舵机与超声波代码。重点讲解了超声波超时定时器设置(10ms)以提高稳定性,以及通过距离检测控制舵机转向(左135°、中90°、右0°)。最后阶段加入电机控制,通过数组存储左右测距距离进行比较,实现小车向更宽位置移动或后退避障。整个过程强调代码优化和硬件稳定性处理,最终完成可自动避障的小车功能。
2025-06-16 21:41:35
738
原创 遥控电风扇
这篇文章介绍了一个用433M无线模块和继电器控制的遥控电风扇DIY项目。作者使用了简单的电子元件(继电器、电池盒、小电机等)和15行代码实现了遥控开关功能。文中还提到继电器的接线方式(NO、NC、COM口)以及模块的低电平触发特性,并调侃了这个突发奇想的搞笑创意。整个项目虽然简易,但展现了电子DIY的乐趣。
2025-06-14 21:15:52
364
原创 学习STC51单片机38(芯片为STC89C52RCRC)智能小车5(跟随小车)
摘要:文章介绍了红外跟随小车的实现原理,通过两个红外传感器模块检测物体位置(左转/右转/直行/停止),并使用差速控制实现跟随功能。硬件上利用红外信号返回电平变化判断物体方位,软件上通过调整左右轮速度(直行20/20,转向20/0或0/20)实现平滑跟随。代码复用前期电机控制模块,重点在main.c中根据传感器状态进行速度逻辑判断,强调参数需通过实际测试调整。项目体现"边行动边完善"的理念,鼓励动手实践。
2025-06-14 14:43:51
724
原创 学习STC51单片机37(芯片为STC89C52RCRC)智能小车4(循迹小车、优化循迹小车解决转弯不平滑)
摘要:文章介绍了循迹小车的实现原理,重点讲解了TCRT500红外传感器的工作机制:当检测到黑线时输出高电平并灭灯。通过两个传感器协同工作,将黑线控制在中间实现循迹。针对转弯不平滑问题,提出采用差速控制方案,让左右轮以不同速度转动来改善转向效果。文中还提供了代码实现思路,包括传感器检测逻辑和电机差速控制的具体编程方法。整个方案基于51单片机实现,适用于简单直线循迹场景。
2025-06-13 13:13:43
947
原创 学习STC51单片机36(芯片为STC89C52RCRC)智能小车3(PWM差速小车)
首先我们不是定义的0.5ms就中断一次嘛,那我们需要进行一个count++ 计算count的次数,如果count <speedLeft那么就持续高电平 多久呢比如speed在main函数里面写的15,那么这个count就会到第15次中断之前都是高电平,其他的就是都是低电平了,最后到40个count的时候就该清0了,因为我们设计的是20ms一个周期,那么这个PWM波形我们就画出来了,那么这边我们涉及到几个函数也需要提一下这个在mortor.c代码区。你拥有的此刻,是未来的你回不去的珍贵时光,全力绽放吧。
2025-06-12 18:01:17
1111
原创 学习STC51单片机35(芯片为STC89C52RCRC)智能小车3(PWM调速小车)
摘要:本文介绍了PWM(脉冲宽度调制)技术在电机调速中的应用原理。通过调节方波信号的占空比来控制电机平均电压,从而改变转速。文章详细解析了PWM调速机制,包括定时器配置、中断处理等核心实现方法,并区分了电磁续流效应与机械惯性对电机动态响应的影响。最后给出了基于定时器的PWM调速代码实现思路,通过调整speed参数改变占空比来控制电机转速。该技术广泛应用于电机控制领域,具有高效、精准的调速特性。
2025-06-12 17:48:17
1405
原创 学习STC51单片机34(芯片为STC89C52RCRC)智能小车2(串口控制小车、蓝牙控制小车(点动)和(自动))
其实这个也很好理解,就是我们按一下按键的时候200ms会动然后就不动,当然这边用10ms更能体现出来,但是其实点动其实就是在触摸按键的时候在不断的在发字符给单片机,松开手的时候就会过200ms就不动,好了这边还需要软件层面的加持,因为我们的这个蓝牙助手做不到这个功能,他只能我们按住按键的时候也只是发1次字符,所以我们单片机层面已经做的很好了,下面要提升软件层面才能实现了,就是按住会不断的发字符给单片机,这个是需要自己在安卓APP上面设计的。如果不懂蓝牙模块是什么的可以看我之前的笔记,都有记录的。
2025-06-10 14:09:46
860
原创 学习STC51单片机33(芯片为STC89C52RCRC)智能小车1(组装和介绍小车、电机驱动和电机驱动代码)
这边需要用到4个电池的电池盒用作对电机的驱动,因为单片机的电压不稳,到时候会有很多模块,主要还是因为单片机是用于烧写程序的是作为大脑的,怎么可以做非专工的事情,大材小用了....但是你的上下最好是两个电机都是上下一样的对称接法,比如motroA的左边那条线接电机上方,右边接电机下方,motroB的左边那条线接电机上方,右边接电机下方。我就是想说,每个电机用对称性的接法,这样我们调试代码,和测试才好测试,一下子就能判断出来正转和反转,因为代码也对称就好了。努力不会立刻开花结果,但会在未来某一天惊艳所有人。
2025-06-10 14:02:24
969
原创 学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
摘要:本文介绍了OLED显示屏的驱动原理及常见显示问题的解决方法。通过案例分析解释了信号切换过快导致屏幕"雪花"现象的原因,并提出通过稳定时钟信号来解决。详细说明了字符(如"A"和"真的会生气")和图片(128x64像素BMP格式)的显示实现方法,包括使用字模工具处理数据、页寻址模式的数据输出逻辑以及数组参数类型的注意事项。最后总结了OLED屏幕数据刷新与清屏函数的相似性,以及多寄存器数据写入的循环实现方式。(150字)
2025-06-09 12:17:07
860
原创 学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
led将列方向上64个点分成了page7 从page0-7 那么就是8个page寄存器,每个寄存器存放8位,那么我们要将这个寄存器的地址找出来,在里面把字节填上去,那不就显示1的格子就亮起来(具体的讲解看手册,我只是利于自己的记忆)那么这个前面的10110都是默认的 后面xxx才是需要自己配置的,又会发现有3个x那么是不是2的3次方就是8,也就是代表我们8种page寄存器的地址,使每个page都有地址。: 1代表 每次都问每次控制字节都会起作用,问之后的数据是命令还是数据,就好像会控制一下的感觉,
2025-06-09 06:07:51
893
原创 学习STC51单片机30(芯片为STC89C52RCRC) IIC协议
怎么个原理呢,就是SDA和SCL两条线都会接上拉电阻,如果任何一条线不被控制工作的时候,就是SDA和SCL会被拉高,因为此时被上拉电阻接管,所以我们空闲的时候也是上拉电阻保证了SDA和SCL都是高电平。此时 SCL=1 那么检测SDA 此时这个SDA是从机控制的,要是从机认可接收,那么就会拉低SDA,要是没有接受就拉高SDA(由上拉电阻保证)IIC协议规定:我们发的时候是最高位发的,组装的时候也是最高位开始组装的,所以不用怕,当你感到疲惫时,正是成长的关键时刻,再坚持一下。
2025-06-07 23:37:42
716
原创 学习STC51单片机29(芯片为STC89C52RCRC)
摘要:本文介绍了串口通信和LCD显示的实现方法。通过初始化波特率和发送函数建立串口通信,重点讲解了将数字转换为ASCII字符发送的原理(如datainfo数组数据通过/10和%10运算加上0x30转换)。在LCD显示方面,整合DHT11传感器数据到数组,通过指针传递给显示函数。最后提出模块化编程方案:将代码按功能拆分到.c文件,用.h文件声明函数,并使用extern关键字解决全局变量共享问题,使代码更易维护。
2025-06-06 23:38:14
906
原创 学习STC51单片机28(芯片为STC89C52RCRC)
摘要:本文详解DHT11温湿度传感器的使用流程。首先通过检测模块响应信号验证连接有效性,利用60us时间点检测低电平触发LED指示。重点介绍"卡点法"读取数据:通过while循环检测DHT信号电平自动跳变,避免不稳定的延时操作。数据读取时采用位操作(左移和或运算)将40位数据存入5字节数组,每8位构成一个有效数据。最后在main函数中循环调用实现数据持续刷新。该方法通过精准时序控制确保数据可靠获取,为传感器开发提供稳定解决方案。
2025-06-05 23:46:41
1087
原创 学习STC51单片机27(芯片为STC89C52RCRC)
摘要:LCD1602液晶显示模块采用8位数据线传输指令和显示内容,其80字节存储容量中仅32字节对应屏幕可见区域。通过时序控制信号(RS、RW、E)实现寄存器选择和读写操作,其中忙信号检测(BF)是确保操作时序正确的关键。初始化流程需严格遵循指令序列,并通过指针遍历实现字符串显示。典型应用包括单字符和字符串显示,地址计算采用基址(0x80)加偏移量的工业标准方式。
2025-06-04 23:23:52
1207
原创 学习STC51单片机26(芯片为STC89C52RCRC)
代码解释,我们通过内网穿透的IP,让我们的4G模块连接到这个内网服务器(这个服务器就是被穿透的,他的IP被穿透了,这样我们的4G作为外网通过穿透的IP地址和端口号才能连接上我们的内网),这样我们只需要在内网服务器上面发送想要输入的数据,4G模块就是会接收到,随后4G模块会将收到的信息发送给单片机,当然也是一个一个字符的发送,然后存放在SUBF里面,然后我们的代码就会把它读取出来,如果有相匹配的字符就会执行指令。这个是接线原理,我们也只要知道这个4根线的连接就好了,我们也是连接到USB转TTL的模块上。
2025-06-03 22:28:27
1376
原创 学习STC51单片机25(芯片为STC89C52RCRC)
摘要:本文介绍了ESP8266在AP模式(路由器模式)下的配置与通信方法。首先通过AT指令将ESP8266设置为AP模式(AT+CWMODE=2),开启多连接(AT+CIPMUX=1)并建立TCP服务器(AT+CIPSERVER=1)。PC作为客户端连接ESP8266发射的WiFi后,可通过网络调试助手进行通信。重点解析了单片机通过AT指令与ESP8266交互的机制,特别是利用"OK"响应标志位来控制指令执行流程。最后实现TCP客户端向ESP服务器发送":op开灯"、":cl关灯"等控制指令的功能。整个配置
2025-06-02 21:48:01
1082
原创 学习STC51单片机24(芯片为STC89C52RCRC)
摘要:本文介绍了优化ESP8266白盒测试的方法,利用安可信串口助手获取模块反馈信息来调试代码。通过标志位替代延时等待,确保网络连接稳定后再进行数据透传。测试阶段需手动发送确认指令(如"OK"),待验证成功后可直接连接单片机实现智能控制。该方法提高了代码健壮性,接近100%成功率,为智能家居开发奠定了基础,最终可实现通过手机APP在局域网内控制各类设备的功能。
2025-06-02 05:26:50
877
MinGW,即 Minimalist GNU for Windows
2025-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人