嵌入式开发星球
以培养优质嵌入式工程师为目的,持续分享优质嵌入式内容;答疑解惑,获取资源,可添加博主微信:18270720391;关注公众号:“嵌入式开发爱好者”,输入:“1024” 领取资料。
展开
-
嵌入式C++常用的函数分享
通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上标识符即可。在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符,或者是第一个大于或等于 base 的数值字符。功能:从 src 拷贝 n 个字节,交换每对相邻的字节,并把结果存储在 dest 中。功能:将字符串 nptr 转换成 double 型数据,在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符。原创 2025-03-25 17:19:43 · 330 阅读 · 0 评论 -
C语言嵌入式Linux高级编程:程序的编译、链接与运行深度解析
理解程序的编译、链接与运行机制是嵌入式开发的核心基础。从预处理到动态链接,每一步都涉及底层细节的精确控制。通过工具链(如GCC、Binutils)和脚本(如链接脚本),开发者可以灵活适配不同硬件平台,优化程序性能与资源占用。深入掌握这些知识,能够有效解决系统级问题,提升嵌入式软件的开发效率。原创 2025-03-03 20:42:46 · 254 阅读 · 0 评论 -
嵌入式QT中调用对应的数据库控制与实现
大家好,今天主要给大家分享一下,如何使用嵌入式系统中的数据库存储数据,管理数据等。如果没有数据库,则闹钟程序关机了数据不保存在物理储存设备里,下次运行闹钟时就没有上次设置的闹钟数据,这显然是不合理的。所以我们需要用到数据库。在项目中使用Qt SQL模块,需要在项目配置文件中添加如下语句。原创 2025-01-12 21:40:57 · 57 阅读 · 0 评论 -
嵌入式系统中C++的基本使用方法
大家好,今天主要给大家分享一下,最近操作C++代码的控制方法。什么是构造函数?构造函数在对象实例化时被系统自动调用,仅且调用一次。什么是析构函数?与构造函数相反, 在对象结束其生命周期时系统自动执行析构函数。原创 2025-01-01 10:18:09 · 193 阅读 · 2 评论 -
嵌入式QT中按键的控制与实现
开发板监测这个 KEY7 有很多方法。比如使用 C 语言开一个线程监测这个按键,或者按本例重写键盘事件来监测 KEY7 按键按下或者松开。原创 2024-11-25 20:52:42 · 261 阅读 · 0 评论 -
嵌入式QT中控制led灯的方法
利用QT控制硬件的时候,先操作容易的,再实现难的,可以先从控制LED硬件开始。出厂内核已经默认将这两个 LED 注册成了gpio-leds 类型设备。所以我们可以直接在应用层接口直接可以操作这个 LED 设备(这里我们以操作 LED1 为例)。设置一个按钮,点击即可控制 LED 状态反转(点亮或者熄灭 LED)。项目看来很起来很简单,实际上有些需要注意的地方,我们在改变 LED 的状态时,需要先去读取 LED的状态,防止外界(外面应用程序)将 LED 的状态改变了。原创 2024-11-25 20:37:11 · 231 阅读 · 0 评论 -
嵌入式QT中多媒体的实现方法
多媒体指组合两种或两种以上媒体的一种人机交互式信息交流和传播媒体。使用的媒体包括文字、图片、照片、声音、动画和影片,以及程式所提供的互动功能。Qt 的多媒体模块提供了音频、视频、录音、摄像头拍照和录像等功能。原创 2024-11-23 20:34:12 · 92 阅读 · 0 评论 -
嵌入式QT中组播功能的具体实现
一种是源主机和目标主机两台主机之间进行的“一对一”的通讯方式,即单播,第二种是一台源主机与网络中所有其他主机之间进行的通讯,即广播。那么,如果需要将信息从源主机发送到网络中的多个目标主机,要么采用广播方式,这样网络中所有主机都会收到信息,要么,采用单播方式,由源主机分别向各个不同目标主机发送信息。原创 2024-11-23 12:43:42 · 211 阅读 · 0 评论 -
嵌入式QT中UDP通信实现方法
UDP是一个轻量级,不可靠的,面向数据报的无连接协议。日常生活中QQ聊天使用的是UDP进行消息发送的。因为 QQ 有很多用户,发送的大部分都是短消息,要求能及时响应,并且对安全性要求不是很高的情况下使用 UDP 协议。广播UDP与单播UDP的区别就是IP地址不同,单播实际上是通信上对应的一对一,广播是一对多。创建一个udpSocket套接字,然后绑定本地主机端口。使用QUdpSocket类提供的读写函数readDatagram和writeDatagram,知道目标IP地址和端口,完成消息接收与发送。原创 2024-11-23 12:11:56 · 256 阅读 · 0 评论 -
嵌入式系统中QT实现网络通信方法
QT中网络模块为提供了可以使用TCP/IP客户端与服务器的类。它提供了较低级别的类,例如代表低级网络概念的 QTcpSocket, QTcpServer 和 QUdpSocket,以及诸如 QNetworkRequest, QNetworkReply 和 QNetworkAccessManager 之类的高级类来执行使用通用协议的网络操作。在程序中使用QT网络模块,需要在pro项目配置文件里增加下面一条语句。在建立网络通信之前我们至少得获取对方的 IP地址。原创 2024-11-21 21:15:20 · 500 阅读 · 1 评论 -
嵌入式QT中利用线程控制与实现方法
线程内有很多方法在主线程内, 但是子线程,只有 run()方法是在子线程里的。run()方法是继承于 QThread 类的方法,用户需要重写这个方法,一般是把耗时的操作写在这个 run()方法里面。原创 2024-11-20 21:12:30 · 155 阅读 · 0 评论 -
嵌入式linux中QT信号与槽基本操作与实现
在操作QT的时候,可以使用里面的信号与槽。所谓信号就是一个对象发出的信号,槽就是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。进行信号与槽的连接有两种方法:如下图①处, 点击进入信号槽连接模式(若想退出信号槽连接模式,则点击①处左边的按钮), 进入信号与槽的连接模式后,将鼠标选中我们的“关闭程序”按钮,按住按钮,然后用鼠标向外拖动, 如②处。此时就会出现信号槽连接的符号。选中“关闭程序” pushButton 按钮,然后右键,如下图。选择“转到槽”。原创 2024-11-20 20:00:23 · 279 阅读 · 0 评论 -
嵌入式QT中基本工程模板分析
大家好,今天主要来分享一下,如何分析一下QT的工程代码文件。原创 2024-10-21 19:53:30 · 114 阅读 · 0 评论 -
嵌入式C++中虚函数以及基本特性实现
以往所学习的运算符只能进行基本的数据类型运算符, 无法实现 两个字符串的相加 , 两个类的相加,两个结 构体的相加。这时候我们就可以利用 c++ 新增的运算符 重载的方法赋予运算符新的功能实现这些数据的运算。动态多态:在程序 《运行》的时候,才能确定执行的状 态。1.当一个函数被声明为该类的友元函数时,该函数就不 属于类中的成员函数!3.通过基类 的指针 或 引用,指向派生类,并调用重写 的方法。一个对象,作用于不同的事物,所以得到的结果不一样。3.虚表的地址,永远都在对象空间的最前面。原创 2024-10-20 16:43:22 · 241 阅读 · 0 评论 -
嵌入式C++中类的继承与实现方法
大家好,今天主要给大家分享一下,如何使用C++中的类,以及类的继承方法。原创 2024-10-20 09:48:56 · 87 阅读 · 0 评论 -
嵌入式C++常见语法规则实现
大家好,今天主要给大家分享一下,如何使用C++中的常用的规则。原创 2024-10-19 17:13:11 · 471 阅读 · 0 评论 -
嵌入式C++中内存分配基本实现方法
大家好,今天主要给大家分享一下,如何使用计算机中的内存空间进行分配,观察具体现象。原创 2024-10-18 21:18:04 · 257 阅读 · 0 评论 -
嵌入式C++基本操作与实现方法
大家好,今天主要给大家分享一下,如何使用嵌入式中。原创 2024-10-18 20:37:56 · 122 阅读 · 0 评论 -
嵌入式鸿蒙系统开发语言与开发方法分析
可复用的UI单元,可组合其它组件,如上述被@Component装饰的struct Hello。UI描述:声明式的方法来描述UI的结构,例如build()方法中的代码块。原创 2024-09-10 10:56:36 · 1629 阅读 · 0 评论 -
嵌入式Openharmony系统构建与启动详解
旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。为了实现这一目标,OpenHarmony 驱动框架:采用c语言面向对象编程模型构建,通过平台解耦、内核解耦,来达到兼容不同内核,统一平台底座的目的,从而帮助开发者实现驱动一次开发,多系统部署的效果。这个描述至少包含了以下3个关键的信息:原创 2024-09-08 23:09:52 · 3304 阅读 · 0 评论 -
嵌入式OpenHarmony源码基本原理详解
在3.0版本中,Lite系统(即轻量系统和小型系统)、标准系统各有一套独立的构建入口和上层的构建流程,但在3.2版本中,两者开始互相借鉴,取长补短并实现了融合统一;在3.0 版本中,标准系统的启动流程相对比较简单,但在3.1版本中,则引入了Randisk和TwoStages机制,标准系统的启动流程因此变复杂了,但安全性得到了提升;OpenHarmony 驱动框架的部分数据结构定义和局部的启动流程,在3.1版本中也有了不少调整和重构。原创 2024-09-08 12:02:53 · 694 阅读 · 0 评论 -
嵌入式OpenHarmony系统的一些特点
大家好,今天主要给大家分享一下,如何使用OpenHarmony,它的一些基本特点。原创 2024-09-05 23:00:00 · 245 阅读 · 0 评论 -
嵌入式鸿蒙系统openharmony编译方法详解
OpenHarmony 是由开放原子开源基金会()孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。关于 OpenHarmony开源项目的技术架构、技术特性、系统类型以及详细特征等内容可以进入到 OpenHarmony的Gitee地址进行查看。原创 2024-07-07 22:48:16 · 344 阅读 · 0 评论 -
嵌入式linux系统中动态链接库实现详解
而第二个程序的foo函数为内存地址0x456这个位置,接下来第二个程序开始运行,CPU开始执行foo函数,由于第二个程序的foo函数在0x456,因此我们希望CPU能跳转到这里,但由于动态库中call指令后跟的是0x123这个内存地址,因此CPU执行foo函数时依然会跳转到第一个程序的foo函数。而如果CPU执行第二个程序中的foo函数,那么CPU同样会进行相对跳转,这不过这次跳转到的是第二个程序的got表,然后发现foo的地址是0x456,然后开始执行第二个程序中的foo函数。原创 2024-06-30 09:53:12 · 375 阅读 · 0 评论 -
嵌入式系统中静态库与动态库详解
链接器从表面看实际上是一个打包器,把各种目标文件,也就是你的代码和标准库打包起来,如果还有其它库也是一样的道理,经过链接会生成最终的可执行程序。这时的可执行程序中不再包含完整的动态库代码,而是只有一份参考文献,你可以想象一下,这里肯定保存了两项基本信息,依赖了哪个库,这个库保存在了哪里。由于你实现的加减乘除等函数非常好用,广受其它程序员的欢迎,因此你写的代码渐渐的变成了一种标准,所有程序员都遵循,标准库就是这么诞生的。程序的内存分为代码区、数据区、堆区和栈区,它们的布局是这样的,这里重点看代码区。原创 2024-06-30 09:38:49 · 220 阅读 · 0 评论 -
嵌入式C++析构函数与构造函数区别详解
大家好,今天给大家分享一下,如何使用C++进行QT开发,详细过程分享给大家。原创 2024-06-28 23:34:27 · 171 阅读 · 0 评论 -
嵌入式系统中C/C++有仓颉语言对比分析
很多朋友也问我 “要不要入行鸿蒙?” 其实我很难给一个明确的答案,毕竟我也没有充分的调研数据,也不敢随意劝大家入行。“新” 意味着机遇,同样也意味着风险。在你有条件承担风险时,选择拥抱 “新” 没有任何问题,但在没有风险承担能力时,我的建议还是先学好一门主流的编程语言、开发框架、打好计算机基础,然后你再去学新出的编程语言就非常容易了。我还是很看好华为的,也期待国内的操作系统和计算机生态可以更强大。原创 2024-06-24 17:07:08 · 961 阅读 · 0 评论 -
嵌入式系统中判断大小端的方法与实现
程序判断计算机是大端的还是小端的,判断的思路是确定一个多字节的值(下面使用的是4字节的整数),将其写入内存(即赋值给一个变量),然后用指针取其首地址所对应的字节(即低地址的一个字节),判断该字节存放的是高位还是低位,高位说明是 Big endian ,低位说明是 Little endian。原创 2024-06-13 20:36:42 · 354 阅读 · 0 评论 -
嵌入式工程师人生提质的十大成长型思维分享
反思思维是一种重要的成长方式。它要求我们在行动后回顾自己的表现与决策,总结经验教训并不断改进。通过反思思维,我们可以发现自己的不足并找到改进的方向,从而实现持续的成长与进步。原创 2024-06-02 19:35:09 · 276 阅读 · 0 评论 -
高手学习技术何时开始突飞猛进分享
后来这个学期有点“误入歧途”的意思,入了 Machine Learning 的坑,记得当时花了好几个月刷完西瓜书和吴恩达机器学习课程的讲义(真佩服当时的毅力,都是英文和公式推导),后来想了想,ML/DL这个东西有点玄学,于是毅然决定成为一名做工程的程序员。大一下,转专业到计算机了,开始自学数据结构,算法和C++,部分看完了 数据结构与算法分析,并且把书上的数据结构实现了一遍,记得当时五月份给自己的flag是看完C++ Primer,然后每天上课看,晚饭吃完后也跑去七号楼刷书,最后囫囵吞枣似的看完了大部分。原创 2024-05-11 16:53:17 · 79 阅读 · 0 评论 -
嵌入式系统中AI可以提高开发效率方法
博主日常工作中也会接触到一些 shell 脚本、python 脚本、汇编语言,当看不懂的时候,直接贴给 chatGPT,他给出的解释一般都很合理,这种特殊性的东西百度是搜不到的,但是 chatGPT 可以给出很好的解释,甚至对代码逐行解释,真的很方便很好用。文生视频的 Sora 模型目前普通用户无法使用,但我们能看到 AI 能做的事情越来越多,大家还是要意识到 AI 对工作和日常生活产生的影响,我们要把 AI 用起来,避免自己落后于时代。原创 2024-04-21 23:02:08 · 635 阅读 · 0 评论 -
嵌入式STM32F407CET6移植OpenHarmony系统方法
文件末尾添加:export PATH=~/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH。编译完成文件输出在LiteOs源码目录下out/STM32F407_ATK_Explorer文件夹中。②点击connect to the target,下方会自动显示识别出来的芯片型号以及flash大小。⑤点击program verify并点击start,等待烧写并校验完成,你就能看到程序正在运行了。,在选择刚才我们说的Huawei_LiteOS.hex文件。原创 2024-04-13 22:18:05 · 320 阅读 · 0 评论 -
做一名嵌入式工程师需要掌握的知识是广还是精?
我用过STC、NXP、NUC、ST、TI等单片机,其实内部资源,最常用的无非就是GPIO、定时器、串口、ADC、IIC、SPI等等,也不多..就像等你做了开发5年以后,突然有一天,对指针是灵魂的理解,恍然大悟,卧槽,原来c语言也能实现面向对象的代码风格。做了单片机开发10年,虽然产品类型一直在变,但如果做多了,会发现,很多都是能够改改复用的,很多都是能够举一反三的。我程序对短按的定义,就是2秒以下,都是短按,2秒以上是长按,然后2秒以后,每个150ms,代表连续长按。原创 2024-04-09 23:41:49 · 419 阅读 · 0 评论 -
嵌入式中基于QT的开源串口调试工具
在开始软件设计之前,我们来简略地分析一下这样一个小软件其要包含的主要内容有哪些。我们认为软件需要如下几个方面的内容:串口参数的配置,我们希望串口号能够自动搜索,而相应的配置参数我们可以选择。发送数据的输入,对于本软件我们需要输入相应的数据以实现命令及消息的发送,所以我们需要设计数据的输入区域以及发送交互按钮等。接收信息的显示,作为调试工具,我们肯定希望能够一目了然地看到接收到目标设备发送过来的消息,所以我们需要一个显示区域来对接收的区域进行显示。原创 2024-04-06 22:44:49 · 313 阅读 · 0 评论 -
嵌入式开发过程中应该养成的习惯!
最近有一些读者来咨询:有什么需要注意的编程好习惯?给大家分享一下。不要被这几个字吓到,官方文档其实都是宝藏。一个成熟的技术诞生,可以没有博客没有书籍,但一定会有一个官方文档,毋庸置疑,它一定。编写官方文档的人,也通常就是这些技术或者软件的开发者,他们是对这些东西最了解的人,所以编写的文档不仅质量非常高,通常内容也都是最新的。因此,官方文档远比网上的各种博客和论坛等更适合入门学习。当我们遇到很多问题和技术细节的时候,认真将官方文档过一遍,你会发现很多问题和认识模糊的地方都会清晰起来。原创 2024-03-26 22:28:37 · 105 阅读 · 0 评论 -
嵌入式C++编程新手容易犯的 10 种编程错误
简单的总结一下 C++ 新手容易犯的一些编程错误,给新人们提供一个参考。原创 2024-02-15 21:48:47 · 949 阅读 · 0 评论 -
嵌入式中《C++之旅》阅读笔记
可以单独对user.cpp 和 Vector.cpp编译,生成.o文件,这是因为上述示例使用了#include操作,预处理器在遇到#include的时候,会将其中的内容完整的拷贝一份到相应的文件,这就导致每个.cpp都有头文件Vector.h的一个副本,代码体积膨胀不说,还增加了编译时间。的隐含意思是在编译阶段求值,对于一些求值操作,如果声明为constexpr,那么会编译器会尝试在编译阶段进行计算求值,如果求值成功,则用结果进行替换。自gcc5.1之后,字符串优化采用了新的机制,即SSO,其为。原创 2024-02-07 08:57:47 · 1130 阅读 · 0 评论 -
嵌入式系统中VSCode配置C/C++环境方法
以上就是对VSCode的介绍,并且配置了C/C++编译环境,后面实例代码都是在此编辑器的基础上进行编写,如果对VSCode感兴趣的小伙伴可以试着安装尝试一下进行开发。如果有对其他语言环境需求的小伙伴可以安装对应的扩展插件。后续我会对markdown编写以及远程链接Linux系统进行编译调试的方法进行介绍,有喜欢的小伙伴可以关注一下。原创 2024-01-31 10:37:52 · 969 阅读 · 0 评论 -
嵌入式Qt中实现http服务接收POST请求
嗨喽,大家好!以下知识点做个简单记录分享给小伙伴们!首先我们来理解几个概念。原创 2024-01-30 11:13:34 · 1239 阅读 · 0 评论 -
嵌入式中Qt5.7.1添加支持openssl方法
一定要选对Qt版本对应的openssl版本,由于开始选的openssl版本不对,导致编译Qt时出现很多错误。然后再把openssl相关的库libssl、libcrypto放在目标板下。将新生成的libQt5NetWork。版本:openssl-1.0.2g。原创 2024-01-29 16:49:54 · 893 阅读 · 0 评论