- 博客(75)
- 收藏
- 关注
原创 Lua语言的文件IO
I/O库提供了两套不同风格的文件处理接口。第一种风格使用隐式的文件句柄;它提供设置默认输入文件及默认输出文件的操作,所有的输入输出操作都针对这些默认文件。第二种风格使用显式的文件句柄。当使用隐式文件句柄时,所有的操作都由表 io 提供。若使用显式文件句柄, io.open 会返回一个文件句柄,且所有的操作都由该文件句柄的方法来提供。
2025-01-07 10:50:01
1145
原创 Lua协同程序(线程)
ua 的协同程序(coroutine)是一种轻量级的线程,允许你在多个任务之间进行协作式多任务处理。与操作系统线程不同,协同程序是由程序员显式控制的,不会自动切换,而是通过yield和resume来手动切换执行权。协同程序的核心思想是协作式多任务,即一个任务主动让出执行权,另一个任务才能继续执行。这种机制非常适合需要分步执行的任务,例如状态机、迭代器、异步任务等。
2025-01-06 17:49:20
1326
原创 Lua语言当中的元表
在 Lua 中,元表(Metatable)是一种特殊的表,用于定义或扩展其他表的行为。通过元表,你可以自定义表的操作,例如加法、减法、索引访问等。元表是 Lua 实现面向对象编程、操作符重载等功能的核心机制。
2025-01-06 16:26:52
1063
原创 工程师了解的Lua语言
ua语言是用于嵌入式领域当中的一门脚本语言,其实在大学期间,我也没有接触过这门语言,但是在未来的发展之路当中,需要用到这门语言,所以在我的知识库当中添加这门语言知识是必要而且重要的,但是对于有基础的同学来说,学习一门语言其实大概思路都是差不多的,我们需要知道这门语言的基本数据类型,语法,循环结构,条件判断结构,那么这些基本了解的东西就了解得差不多了,相比其他语言来说,lua语言相比较简单,如果已经有了其他语言的概念和知识之后,学习这门语言来说相对比较容易。
2025-01-03 16:15:59
880
原创 ARM实现URAT通信,看门狗中断,裸机开发
实现思路,原理图,芯片手册,通过查看原理图,找到对应的引脚,然后进行查找芯片手册,找到对应的控制器,现在我们用到的就是UART2这个控制器,然后配置对应的寄存器,让其开启工作,这样一个编程我们称之为寄存器编程,
2024-11-28 20:44:10
365
原创 什么是ARM架构
ARM架构:通过精简指令集(RISC)和寄存器控制,提升CPU运行效率,同时通过不同的运行模式优化资源调度。不同版本的ARM架构可以理解为不断升级的工厂设计,而这个“加工厂”综合了流水线、寄存器、指令集等各部分,协同完成程序的高效处理。
2024-11-28 19:31:33
1539
原创 ARM的异常处理模式
RM处理器具有多种处理模式,它们定义了处理器在执行不同类型任务时的行为和权限。这些模式确保了系统运行的安全性、稳定性和高效性。下面是ARM处理器的处理模式的详细介绍:
2024-11-19 23:22:10
1140
原创 什么是ARM
ARM内核是ARM架构的具体实现,由ARM公司或授权厂商基于ARM架构设计。每种内核对应不同的性能和功耗需求,满足从低功耗嵌入式设备到高性能计算的多种场景。主要内核分类如下:
2024-11-19 22:07:37
629
原创 DHT22温湿度传感器
DHT22 是一种常见的温湿度传感器,能够测量环境的温度和相对湿度,并通过单总线协议传输数据。它工作原理简单可靠,适合应用于环境监测领域。
2024-11-17 21:17:55
1688
原创 IIC和SPI的区别和相同之处
I²C:基于时钟同步的半双工通信,每次传输一位数据。通过 主设备的时钟信号同步数据传输,采用位级应答机制和 仲裁机制,支持多主设备的并行操作。SPI:基于时钟同步的全双工通信,可以在同一个时钟周期内进行数据的发送和接收。没有应答机制,也没有仲裁机制,通常用于单主多从的场景。
2024-11-03 17:09:27
838
原创 SPI协议——笔记
SPI(Serial Peripheral Interface,串行外设接口)是一种常用的串行通信协议,广泛应用于微控制器、传感器、存储器和显示设备之间的数据传输。它通常用于短距离的高速通信,支持全双工通信
2024-11-03 17:03:20
1335
原创 嵌入式学习——IIC协议
IIC(Inter-Integrated Circuit)是一种串行通信协议,由飞利浦公司于1980年代提出。它允许多个从设备通过两条线(SDA和SCL)与一个或多个主设备进行通信。IIC协议是多主、多从的,适合在短距离内的设备间通信。
2024-11-02 17:33:38
344
原创 UART-通用异步收发器
UART通信主要有两个部分构成:发送器和接收器,也就是我们常见的(RX接收,TX发送)两个独立的线路来实现数据的双向传输,由于是异步的,UART并不需要时钟信号,而是通过设定一定的波特率来进行双方的通信,可以理解为协议。
2024-10-30 23:02:22
885
原创 RTOS之队列
在RTOS官方文档中,对队列的定义讲述的很清晰,队列是任务间通信的主要方式,它们可以用于在任务之间 以及中断和任务之间发送消息。在大多数情况下,队列用作线程安全的 FIFO(先进先出)缓冲区, 新数据被发送到队列的后面,但也可以发送到前面。
2024-10-23 20:11:01
415
原创 freeRTOS中互斥锁与信号量使用?
在 FreeRTOS 中,任务之间的切换是基于任务状态和调度器策略的。如果你依靠互斥锁,而不引入明确的阻塞或同步机制(比如通过信号量或延时),那么调度器很难平衡这些相同优先级的任务的执行。一个任务可能会长时间占用互斥锁,阻止其他任务运行。
2024-10-22 20:02:29
668
原创 NVIC中断控制器
用于启用特定中断。每一位代表一个中断,置 1 时对应的中断被使能。:用于禁用特定中断。与 ISER 类似,置 1 时禁用相应中断。:用于设置中断挂起状态。置 1 时会将对应中断挂起。:用于清除中断挂起状态。:用于设置每个中断的优先级,通常每个中断会有 4 位或更多的优先级设置。:允许软件触发指定的中断。这些寄存器允许开发人员精确控制中断的启用、禁用及优先级管理。
2024-10-15 23:21:35
940
原创 NVIC和EXIT寄存器工作
EXTI(外部中断/事件控制器) 和 NVIC(嵌套向量中断控制器) 的控制寄存器是不同的。这两个控制器分别有自己独立的一套寄存器来完成不同的功能。EXTI 寄存器主要用于外部中断的配置和管理,而 NVIC 寄存器则用于整体中断的优先级管理和使能控制。
2024-10-15 21:04:37
1330
原创 STM32的GPIO寄存器描述
软件控制硬件(在程序中操作对应控制器),通过寄存器,就是 寄存器(可以存放数据),但是其中的数据具有特定的硬件含义(查看芯片手册),设置寄存器的值,对应的控制器就执行对应的工作。相当于寄存器就是控制器硬件留给软件的接口具体操作:寄存器是硬件与软件的接口:寄存器的具体意义由芯片手册定义:寄存器映射到特定的内存地址:通过寄存器配置控制器:通过编写软件来修改寄存器的内容,程序可以控制硬件如何工作。比如:下面以 STM32F103RCT6为例子: 在STM32F103RCT6中,GPIO端口的配置主要
2024-10-14 21:33:31
1274
2
原创 每天一道面试题4——智能指针是一个指针吗?为什么称为智能指针?
智能指针本质上是一个类对象,它通过封装指针并重载运算符,使其使用方式像普通指针。但与普通指针不同,智能指针具有自动管理资源的能力,称为“智能”指针的原因在于它能够。
2024-10-05 15:28:46
535
原创 每天一道面试题3——进程的死锁是什么意思?,如何解决进程死锁的情况?
(Deadlock)是指一组进程在执行过程中,彼此互相等待,导致这些进程都无法继续执行的情况。换句话说,进程因互相占有资源并且相互等待对方释放资源而陷入了永久等待的状态。
2024-10-05 15:24:52
392
原创 为什么说共享内存高效?
以管道为例,进程 A 通过写入管道将数据传输给进程 B,数据会先从进程 A 的用户空间复制到内核空间,然后再从内核空间复制到进程 B 的用户空间,这两个拷贝步骤增加了通信的时间和资源消耗。比如,在分布式系统中,不同的服务器进程可以使用套接字进行数据的交互、请求响应、负载分担等。:套接字不仅可以用于本地主机上进程之间的通信(通过 UNIX 域套接字),还可以跨网络用于不同主机上的进程通信(通过 TCP/IP 套接字)。:套接字是全双工的,可以同时进行数据的发送和接收,这使得它在需要双向通信的场景中非常灵活。
2024-10-05 15:18:10
841
原创 每天一个面试题2——进程间的通信方式有哪些?
进程间的通信方式主要有以下几种: 管道(Pipe) 概念:管道是一种半双工通信方式,数据只能在一个方向上流动。通常用于父子进程之间的通信。 特性: 匿名管道:只能在具有亲缘关系的进程间使用(如父子进程)。 命名管道(FIFO):可以用于任何两个不相关的进程间通信,具备双向通信能力。 优点:简单易用,适合单向通信。 缺点:只能传递无格式的字节流,不适合复杂数据的传递,效率不高。 信号(Signal) 概念:信号是一种用于通知进程某个事件发生的异步通信机制。
2024-10-05 15:15:09
444
原创 冒泡排序,插入排序,快速排序,选择排序
快速排序通过选择一个“基准”(pivot)元素,将数组分为两部分,一部分比基准小,另一部分比基准大,然后递归排序。插入排序通过逐个元素进行插入操作,将每个元素插入到它之前已经排序好的部分。选择排序每次从未排序的部分中选择最小的元素,并将其放到已排序部分的末尾。数组初始状态:[5, 2, 9, 1, 5, 6]数组初始状态:[5, 2, 9, 1, 5, 6]数组初始状态:[5, 2, 9, 1, 5, 6]数组初始状态:[5, 2, 9, 1, 5, 6]排序完成,最终数组为。排序完成,最终数组为。
2024-10-05 15:09:26
1703
1
原创 每天一个面试题1-描述一下哈希算法的实现过程?
哈希算法(Hash Algorithm)是一种将任意长度的输入数据转换为固定长度的输出数据的算法,输出的结果通常称为哈希值、散列值或摘要。哈希算法广泛应用于数据校验、加密、数字签名、数据结构(如哈希表)等场景。哈希算法实现过程的描述
2024-09-29 22:15:27
1219
原创 Qt——如何创建一个项目
本文主要通过实操带领大家来实现基础文件的操作,主要包括文件的打开,读取,写入,当然文件读写我们可以有几种不同的方式来进行操作,分别是文件流,字节流来进行的操作这里就需要两个类分别是文件流(QTextStream)和字节流(QDateStream),那么对于文件类(QFile)完成对文件的一个管理和操作。
2024-09-29 18:47:54
654
1
原创 模态和非模态
那么我们说模态呢,就是一种阻塞窗口,用户和应用程序不能切换到其他窗口进行交互,会阻塞等待当前窗口选择完毕才能与其他窗口进行交互,非模态是一种非阻塞窗口,允许用户和应用程序与其他窗口进行交互,用户不必操作完当前窗口就能切换到其他窗口进行操作
2024-09-28 15:03:55
875
原创 新手如何使用Qt——方法使用
那么这篇文章其实是我在使用Qt的过程当中呢,我发现在Qt使用过程中,在我理解信号和槽这个概念后,在编写槽函数数的时候,发现了自身存在的问题,我的难点是在于当我在编写槽函数的时候,我知道这个槽函数是用来干什么的,但是不知道用什么类,什么函数,因为在qt中的类有很多,每个类下面又有很多函数,导致我不知道该用什么类下面的函数。那么这个问题是通过阅读技术文档来帮助我快速找到这个类和函数,下面我将介绍一下方法。
2024-09-28 14:47:26
1619
3
原创 引用和指针的区别
引用(reference)和指针(pointer)都是 C++ 中用来间接访问内存中对象的机制,但它们有一些重要的区别。以下是它们在语法、用法和特性上的详细区别。
2024-09-24 22:32:12
2665
原创 C++三大特性——继承性(超万字详解)
在C++中,三大特性通常是指面向对象编程(OOP)的三大基本特性,它们是封装(Encapsulation)继承(Inheritance)和多态(Polymorphism)。本文重点讲述继承性,也简单介绍一些封装性。
2024-09-22 20:53:37
1553
原创 C++中友元概念
在类创建对象,类的成员存在权限,默认有些成员不能在类外进行访问,但是有特定情况想要访问对象的私有成员,允许一种特殊的访问方式(在类外也可以访问到对象的私有成员),叫做友元访问,如何能够实现友元访问功能呢,一般我们通过友元函数,友元类,或则友元成员函数来实现,通过友元访问,能够无视private和protected,直接能够访问到不能类外访问的属性,下面我们将来分开描述各种友元来访问类中的属性的实现
2024-09-19 19:23:58
724
1
原创 C++中的const static this
前面我们说到了C++中的类创建,其中类包括了函数,变量,以及构造函数,但是和C语言当中一样,我们对变量和函数有const和static修饰,在C语言当中我们用const修饰变量表示不可修改的变量,那么在C++中是不是也是这样呢?明确告诉大家,有共同点也有不同点,大多是不同的
2024-09-18 21:29:45
1243
原创 C++中类的创建和声明
说实话,C++和C语言有比较大的差别,在C语言中我们面向的是过程,即要怎么实现功能的过程,在C++中,我们面向对象,将这些功能和函数封装起来,用到直接调用对象,那这个过程也是基于C语言的,但是大致不同的是在C语言中我们需要自己写各种功能,在C++中我们可以用其他人写好的,封装好的函数来实现相应的功能,所以涉及到的函数也相对较多。了解了这样一个大致过程,其实我们可以开始学习c++时,要注重C++中的各种语法知识和操作细节,相比C语言有不同,但是也有相似的之处,本文主要用来进行类的声明和创建,类的概率在C++中
2024-09-18 19:30:54
632
labview2019的virtualBench驱动软件
2024-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人