嵌入式开发星球
以培养优质嵌入式工程师为目的,持续分享优质嵌入式内容;答疑解惑,获取资源,可添加博主微信:18270720391;关注公众号:“嵌入式开发爱好者”,输入:“1024” 领取资料。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式鸿蒙开发环境搭建操作方法与实现
本文提供了Linux环境搭建的镜像下载链接(百度网盘),详细介绍了VSCode与Linux系统的连接过程,包括DevEcoDeviceTool安装配置指南。内容涵盖虚拟机成功登录展示、源码目录编译指令操作,以及鸿蒙源码工程的配置和烧录说明,特别标注了源代码与用户自定义代码的存放位置,为开发者提供了完整的开发环境配置参考。原创 2025-06-02 15:16:30 · 258 阅读 · 0 评论 -
嵌入式Openharmony系统中Select函数实现方法
本文介绍了使用HarmonyOS ArkUI框架中的Select组件实现课程时间表下拉选择功能。通过代码示例展示了如何创建包含语文、数学、英语课程的Schedule数组,并配置Select组件的重要属性:设置默认选中项(selected)、显示文本(value)、字体样式(font/fontColor)以及选中项样式(selectedOptionBgColor/selectedOptionFont)。同时列举了Select组件的常用接口参数和属性,包括选项列表设置、初始选中索引、文本展示样式等。该组件支持双原创 2025-05-30 15:52:32 · 62 阅读 · 0 评论 -
嵌入式openharmony系统中文件TEXT操作与实现
摘要:鸿蒙系统Text组件是用于显示文本的UI控件,支持包含Span等子组件。其核心功能包括:1)通过textAlign控制水平对齐;2)用textOverflow和maxLines处理文本溢出;3)支持行高(lineHeight)、装饰线(decoration)、字符间距(letterSpacing)等样式设置;4)可自适应字号(minFontSize/maxFontSize)。当设置textOverflow为Ellipsis并限制maxLines时,超长文本会显示省略号。该组件从API version原创 2025-05-29 20:16:31 · 188 阅读 · 0 评论 -
嵌入式鸿蒙系统中水平和垂直以及图片调用方法
摘要:本文介绍了OpenHarmony中三个常用组件的使用方法:1) Column垂直布局容器,通过space参数设置间距,支持alignItems和justifyContent属性控制对齐方式;2) Row水平布局容器,与Column类似但方向不同;3) Image图片组件,支持多种格式和加载方式,包含自动缩放和重复绘制功能,并提供了三个组件的代码示例。这些组件从API version 9开始支持ArkTS卡片使用,是OpenHarmony应用开发的基础UI元素。原创 2025-05-29 16:53:40 · 251 阅读 · 0 评论 -
嵌入式openharmony系统的按钮的详细实现
本文介绍了OpenHarmony鸿蒙系统中按钮组件的使用方法。按钮组件(Button)支持多种样式(胶囊型、圆形、普通),可通过ButtonOptions配置显示样式、按压效果等属性。从API version 9开始在ArkTS卡片中支持使用,并提供文本内容(label)和子组件两种创建方式。文章详细说明了按钮类型(ButtonType)、样式模式(ButtonStyleMode)、尺寸(ControlSize)等枚举值,并通过示例代码演示了不同样式按钮的实现方法,包括普通按钮、禁用状态按钮以及带加载动画的原创 2025-05-27 21:31:33 · 65 阅读 · 0 评论 -
嵌入式Openharmony系统应用开发与实现方法
本文介绍了OpenHarmony鸿蒙系统的开发实践,包括三个主要内容:1)基础APP开发示例,演示如何创建项目、添加Button组件并预览页面;2)Stage模型特性,说明其作为主推模型在多设备支持、内存优化等方面的优势;3)自定义组件与页面生命周期,通过代码示例展示组件复用和页面事件处理机制。文章为开发者提供了从基础到进阶的鸿蒙应用开发指导,重点突出了Stage模型在分布式应用开发中的适用性。原创 2025-05-24 23:02:28 · 384 阅读 · 0 评论 -
嵌入式openharmony真机链接与调试方法
鸿蒙系统真机运行与调试指南:1. 连接开发板与PC后,在DevEco Studio中完成自动签名(Project Structure>SigningConfigs勾选选项);2. 通过两种方式运行HAP应用:直接使用DevEco Studio或hdc工具安装/更新;3. 调试时设置代码断点(Ctrl+F8),选择设备后启动Debug模式,可查看变量状态。操作涉及插件安装、命令行工具使用及IDE调试功能。原创 2025-05-24 11:37:07 · 98 阅读 · 0 评论 -
嵌入式鸿蒙openharmony应用开发环境搭建与工程创建实现
本文介绍了鸿蒙应用开发的基础知识,包括ArkTS语言特性、开发环境搭建和项目创建流程。重点讲解了在DevEco Studio中创建新工程的详细步骤,从模板选择到工程配置,并说明了预览器的使用方法。同时概述了Stage模型下的工程目录结构及各文件功能,为开发者提供了鸿蒙应用开发的入门指导。原创 2025-05-23 22:14:18 · 360 阅读 · 0 评论 -
嵌入式DAYU200开发板简介与烧录方法实现
润和HH-SCDAYU200开发板基于Rockchip RK3568芯片,集成双核心GPU和高效NPU,搭载四核64位Cortex-A55处理器,主频高达2.0GHz,采用22nm工艺。该开发板支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,具备丰富的扩展接口和双千兆以太网口,适用于NVR、工业网关等多网口产品需求。核心板采用6层布线工艺,尺寸为82mm×60mm,支持多屏异显和OpenHarmony、Linux系统,适用于智能NVR、云终端、物联网网关等场景。开发板烧写方法包括安装USB驱动、打开烧写工具原创 2025-05-15 16:54:49 · 384 阅读 · 0 评论 -
嵌入式openharmony标准系统中HDF框架底层原理分析
本文介绍了基于OpenHarmony标准系统编写的简易HDF驱动程序的开发过程。HDF(Hardware Driver Foundation)驱动框架为开发者提供了驱动加载、服务管理、消息机制和配置管理等功能,旨在构建统一的驱动架构平台,实现一次开发、多系统部署。文章详细阐述了HDF驱动开发的基础知识,包括驱动模型、加载策略、服务管理、消息机制和配置树等内容。通过代码解析,展示了驱动程序的初始化、释放、绑定和注册等关键步骤,并提供了配置文件和应用程序的编写方法。最后,文章介绍了编译和运行该程序的具体步骤,展原创 2025-05-09 14:02:47 · 306 阅读 · 0 评论 -
嵌入式openharmony标准系统中GPIO口控制详解
本文详细介绍了在OpenHarmony标准系统中控制GPIO(通用输入输出)的方法。GPIO通过分组管理,每组GPIO与寄存器关联,通过读写寄存器实现管脚操作。OpenHarmony采用统一服务模式管理GPIO控制器,核心层负责资源匹配和控制器管理,适配层实现硬件相关功能。开发步骤包括实例化驱动入口、配置属性文件、实例化GPIO控制器对象和驱动调试。文章还提供了基于Hi3516DV300开发板的开发实例,展示了如何实现GPIO驱动适配,包括驱动入口注册、属性文件配置、控制器对象初始化和调试过程。通过HDF框原创 2025-05-09 12:16:37 · 502 阅读 · 0 评论 -
嵌入式openharmony标准鸿蒙系统驱动开发基本原理与流程
HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。并以组件化驱动模型作为核心设计思路,让驱动开发和部署更加规范,旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的驱动管理的开发环境,力求做到一次开发,多系统部署。HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。原创 2025-05-06 10:41:10 · 516 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统双向链表控制与实现
双向链表是指含有往前和往后两个方向的链表,即每个结点中除存放下一个节点指针外,还增加一个指向前一个节点的指针。其头指针head是唯一确定的。从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,这种数据结构形式使得双向链表在查找时更加方便,特别是大量数据的遍历。由于双向链表具有对称性,能方便地完成各种插入、删除等操作,但需要注意前后方向的操作。原创 2025-05-06 09:48:25 · 68 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统软件定时器控制与实现
软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器,OpenHarmony LiteOS-M内核提供软件定时器功能。软件定时器扩展了定时器的数量,允许创建更多的定时业务。软件定时器功能上支持:静态裁剪:能通过宏关闭软件定时器功能。软件定时器创建。软件定时器启动。软件定时器停止。软件定时器删除。原创 2025-05-06 09:22:47 · 197 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统时间管理控制与实现
时间管理以系统时钟为基础,给应用程序提供所有和时间有关的服务。系统时钟是由定时器/计数器产生的输出脉冲触发中断产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为时标或者Tick。用户以秒、毫秒为单位计时,而操作系统以Tick为单位计时,当用户需要对系统进行操作时,例如任务挂起、延时等,此时需要时间管理模块对Tick和秒/毫秒进行转换。OpenHarmony LiteOS-M内核时间管理模块提供时间转换、统计功能。原创 2025-05-06 08:50:10 · 350 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统信号量控制与实现
信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务间同步或共享资源的互斥访问。一个信号量的数据结构中,通常有一个计数值,用于对有效资源数的计数,表示剩下的可被使用的共享资源数,其值的含义分两种情况:0,表示该信号量当前不可获取,因此可能存在正在等待该信号量的任务。正值,表示该信号量当前可被获取。信号量可用于同步或者互斥。以同步为目的的信号量和以互斥为目的的信号量在使用上有如下不同:用作互斥时,初始信号量计数值不为0,表示可用的共享资源个数。原创 2025-05-05 20:01:59 · 83 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统消息队列控制与实现
消息队列又称队列,是一种任务间通信的机制。消息队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务被唤醒并处理新消息。任务也能够往队列里写入消息,当队列已经写满消息时,挂起写入任务;当队列中有空闲消息节点时,挂起的写入任务被唤醒并写入消息。原创 2025-05-04 23:02:22 · 247 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统互斥锁控制与实现
互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。任意时刻互斥锁的状态只有两种,开锁或闭锁。当任务持有互斥锁时,该互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放互斥锁时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有。多任务环境下往往存在多个任务竞争同一共享资源的应用场景,互斥锁可被用于对共享资源的保护从而实现独占式访问。另外互斥锁可以解决信号量存在的优先级翻转问题。原创 2025-05-04 22:40:43 · 415 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统事件处理方法
事件(Event)是一种任务间的通信机制,可用于任务间的同步操作。事件的特点是:任务间的事件同步,可以一对多,也可以多对多。一对多表示一个任务可以等待多个事件,多对多表示多个任务可以等待多个事件。但是一次写事件最多触发一个任务从阻塞中醒来。事件读超时机制。只做任务间同步,不传输具体数据。提供了事件初始化、事件读写、事件清零、事件销毁等接口。原创 2025-05-02 21:44:57 · 85 阅读 · 1 评论 -
嵌入式轻量鸿蒙系统内存管理控制与实现
内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内存的初始化、分配以及释放。在系统运行过程中,内存管理模块通过对内存的申请/释放来管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。OpenHarmony LiteOS-M的内存管理分为静态内存管理和动态内存管理,提供内存初始化、分配、释放等功能。动态内存:在动态内存池中分配用户指定大小的内存块。静态内存:在静态内存池中分配用户初始化时预设(固定)大小的内存块。原创 2025-05-01 21:40:49 · 62 阅读 · 0 评论 -
嵌入式轻量鸿蒙系统任务管理控制与实现
从系统角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,各任务的运行相互独立。OpenHarmony LiteOS-M的任务模块可以给用户提供多个任务,实现任务间的切换,帮助用户管理业务程序流程。任务模块具有如下特性:支持多任务。一个任务表示一个线程。抢占式调度机制,高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度。相同优先级任务支持时间片轮转调度方式。原创 2025-04-29 11:11:57 · 190 阅读 · 0 评论 -
嵌入式openharmony轻量内核中断控制与实现03
当硬件产生中断时,通过中断号查找到其对应的中断处理程序,执行中断处理程序完成中断处理。中断触发: 中断源向中断控制器发送中断信号,中断控制器对中断进行仲裁,确定优先级,将中断信号发送给CPU。中断源产生中断信号的时候,会将中断触发器置“1”,表明该中断源产生了中断,要求CPU去响应该中断。中断优先级: 为使系统能够及时响应并处理所有中断,系统根据中断事件的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。代码实现如下,演示如何创建中断、触发指定的中断号进而调用中断处理函数、删除中断。原创 2025-04-29 10:11:04 · 58 阅读 · 0 评论 -
嵌入式openharmony轻量内核原理与适配分析
OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。支持驱动框架HDF(Hardware Driver Foundation),统一驱动标准,为设备厂商提供了更统一的接入方式,使驱动更加容易移植,力求做到一次开发,多系统部署。原创 2025-04-27 15:51:19 · 440 阅读 · 0 评论 -
嵌入式openharmony鸿蒙系统内核与原理分析
OpenHarmony的Linux内核基于开源Linux内核LTS分支演进,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。Linux社区LTS 4.19.y分支信息请查看kernel官网。Linux社区LTS 5.10.y分支信息请查看kernel官网。原创 2025-04-27 15:01:43 · 183 阅读 · 0 评论 -
嵌入式鸿蒙系统环境搭建与配置要求实现01
步骤 2 通过USB公对公数据线连接KHDVK-3568A开发板的USB3.0接口和PC,按住开发板的Recovery键不松,然后将电源适配器插入开发板的电源接口并接通电源。当烧录工具检测到开发板,且界面显示“发现一个LOADER设备”时,松开Recovery键。步骤 1 在PC上解压缩“RKDevTool_Release_v2.84.rar”,双击RKDevTool.exe,启动烧录工具。步骤 3 选择“升级固件 > 固件”,然后在本机选择整体固件镜像文件“xxx.img”,单击“打开”。原创 2025-04-25 22:05:58 · 389 阅读 · 0 评论 -
嵌入式C++常用的函数分享
通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上标识符即可。在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符,或者是第一个大于或等于 base 的数值字符。功能:从 src 拷贝 n 个字节,交换每对相邻的字节,并把结果存储在 dest 中。功能:将字符串 nptr 转换成 double 型数据,在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符。原创 2025-03-25 17:19:43 · 377 阅读 · 0 评论 -
C语言嵌入式Linux高级编程:程序的编译、链接与运行深度解析
理解程序的编译、链接与运行机制是嵌入式开发的核心基础。从预处理到动态链接,每一步都涉及底层细节的精确控制。通过工具链(如GCC、Binutils)和脚本(如链接脚本),开发者可以灵活适配不同硬件平台,优化程序性能与资源占用。深入掌握这些知识,能够有效解决系统级问题,提升嵌入式软件的开发效率。原创 2025-03-03 20:42:46 · 318 阅读 · 0 评论 -
嵌入式QT中调用对应的数据库控制与实现
大家好,今天主要给大家分享一下,如何使用嵌入式系统中的数据库存储数据,管理数据等。如果没有数据库,则闹钟程序关机了数据不保存在物理储存设备里,下次运行闹钟时就没有上次设置的闹钟数据,这显然是不合理的。所以我们需要用到数据库。在项目中使用Qt SQL模块,需要在项目配置文件中添加如下语句。原创 2025-01-12 21:40:57 · 93 阅读 · 0 评论 -
嵌入式系统中C++的基本使用方法
大家好,今天主要给大家分享一下,最近操作C++代码的控制方法。什么是构造函数?构造函数在对象实例化时被系统自动调用,仅且调用一次。什么是析构函数?与构造函数相反, 在对象结束其生命周期时系统自动执行析构函数。原创 2025-01-01 10:18:09 · 221 阅读 · 2 评论 -
嵌入式QT中按键的控制与实现
开发板监测这个 KEY7 有很多方法。比如使用 C 语言开一个线程监测这个按键,或者按本例重写键盘事件来监测 KEY7 按键按下或者松开。原创 2024-11-25 20:52:42 · 312 阅读 · 0 评论 -
嵌入式QT中控制led灯的方法
利用QT控制硬件的时候,先操作容易的,再实现难的,可以先从控制LED硬件开始。出厂内核已经默认将这两个 LED 注册成了gpio-leds 类型设备。所以我们可以直接在应用层接口直接可以操作这个 LED 设备(这里我们以操作 LED1 为例)。设置一个按钮,点击即可控制 LED 状态反转(点亮或者熄灭 LED)。项目看来很起来很简单,实际上有些需要注意的地方,我们在改变 LED 的状态时,需要先去读取 LED的状态,防止外界(外面应用程序)将 LED 的状态改变了。原创 2024-11-25 20:37:11 · 365 阅读 · 0 评论 -
嵌入式QT中多媒体的实现方法
多媒体指组合两种或两种以上媒体的一种人机交互式信息交流和传播媒体。使用的媒体包括文字、图片、照片、声音、动画和影片,以及程式所提供的互动功能。Qt 的多媒体模块提供了音频、视频、录音、摄像头拍照和录像等功能。原创 2024-11-23 20:34:12 · 133 阅读 · 0 评论 -
嵌入式QT中组播功能的具体实现
一种是源主机和目标主机两台主机之间进行的“一对一”的通讯方式,即单播,第二种是一台源主机与网络中所有其他主机之间进行的通讯,即广播。那么,如果需要将信息从源主机发送到网络中的多个目标主机,要么采用广播方式,这样网络中所有主机都会收到信息,要么,采用单播方式,由源主机分别向各个不同目标主机发送信息。原创 2024-11-23 12:43:42 · 253 阅读 · 0 评论 -
嵌入式QT中UDP通信实现方法
UDP是一个轻量级,不可靠的,面向数据报的无连接协议。日常生活中QQ聊天使用的是UDP进行消息发送的。因为 QQ 有很多用户,发送的大部分都是短消息,要求能及时响应,并且对安全性要求不是很高的情况下使用 UDP 协议。广播UDP与单播UDP的区别就是IP地址不同,单播实际上是通信上对应的一对一,广播是一对多。创建一个udpSocket套接字,然后绑定本地主机端口。使用QUdpSocket类提供的读写函数readDatagram和writeDatagram,知道目标IP地址和端口,完成消息接收与发送。原创 2024-11-23 12:11:56 · 292 阅读 · 0 评论 -
嵌入式系统中QT实现网络通信方法
QT中网络模块为提供了可以使用TCP/IP客户端与服务器的类。它提供了较低级别的类,例如代表低级网络概念的 QTcpSocket, QTcpServer 和 QUdpSocket,以及诸如 QNetworkRequest, QNetworkReply 和 QNetworkAccessManager 之类的高级类来执行使用通用协议的网络操作。在程序中使用QT网络模块,需要在pro项目配置文件里增加下面一条语句。在建立网络通信之前我们至少得获取对方的 IP地址。原创 2024-11-21 21:15:20 · 540 阅读 · 1 评论 -
嵌入式QT中利用线程控制与实现方法
线程内有很多方法在主线程内, 但是子线程,只有 run()方法是在子线程里的。run()方法是继承于 QThread 类的方法,用户需要重写这个方法,一般是把耗时的操作写在这个 run()方法里面。原创 2024-11-20 21:12:30 · 187 阅读 · 0 评论 -
嵌入式linux中QT信号与槽基本操作与实现
在操作QT的时候,可以使用里面的信号与槽。所谓信号就是一个对象发出的信号,槽就是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。进行信号与槽的连接有两种方法:如下图①处, 点击进入信号槽连接模式(若想退出信号槽连接模式,则点击①处左边的按钮), 进入信号与槽的连接模式后,将鼠标选中我们的“关闭程序”按钮,按住按钮,然后用鼠标向外拖动, 如②处。此时就会出现信号槽连接的符号。选中“关闭程序” pushButton 按钮,然后右键,如下图。选择“转到槽”。原创 2024-11-20 20:00:23 · 299 阅读 · 0 评论 -
嵌入式QT中基本工程模板分析
大家好,今天主要来分享一下,如何分析一下QT的工程代码文件。原创 2024-10-21 19:53:30 · 138 阅读 · 0 评论 -
嵌入式C++中虚函数以及基本特性实现
以往所学习的运算符只能进行基本的数据类型运算符, 无法实现 两个字符串的相加 , 两个类的相加,两个结 构体的相加。这时候我们就可以利用 c++ 新增的运算符 重载的方法赋予运算符新的功能实现这些数据的运算。动态多态:在程序 《运行》的时候,才能确定执行的状 态。1.当一个函数被声明为该类的友元函数时,该函数就不 属于类中的成员函数!3.通过基类 的指针 或 引用,指向派生类,并调用重写 的方法。一个对象,作用于不同的事物,所以得到的结果不一样。3.虚表的地址,永远都在对象空间的最前面。原创 2024-10-20 16:43:22 · 263 阅读 · 0 评论 -
嵌入式C++中类的继承与实现方法
大家好,今天主要给大家分享一下,如何使用C++中的类,以及类的继承方法。原创 2024-10-20 09:48:56 · 93 阅读 · 0 评论