自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Linux——网络通信

包括多种机制,如管道、消息队列、信号、共享内存和信号量。这些机制都依赖于Linux内核提供的支持,用于实现不同进程之间的数据交换和同步。然而,这些通信方式在本地进程间通信中非常有用,但无法直接用于跨机器间的通信。

2024-03-19 23:24:01 3042 1

原创 Linux多线程编程

而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。* 线程有自己的堆栈和局部变量,但线程没有单独的地址空间(同一进程内的线程共享进程的地址空间),一个线程死掉就等于整个进程死 掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器,不创建线程的话至少有一个线程。

2024-03-18 00:04:42 1046

原创 STL-List容器

std::list 使用双向链表实现。优点:它提供了高效的插入和删除操作,非常适用于频繁需要在容器中间进行插入和删除的场景。缺点:访问速度慢。二.基本用法1.包含头文件。

2025-03-23 00:34:19 268

原创 libcurl 库扫盲

第三步为可选项,所以大概可以分为三步,配置——>编译——>安装(把编译的结果拷贝到相关文件夹底下)

2024-12-12 16:50:43 640

原创 OrangePi Zero2 驱动开发

在加载驱动时,内核版本与驱动版本是必须严格匹配的,否则会出现驱动加载失败的情况。PC_CFG0 寄存器的地址为: 0x0300B000 + 0x0048 =PC_CFG1 的地址为: 0x0300B000 + 0x0048 =PC_CFG2 的地址为: 0x0300B000 + 0x0050 =PC_DAT 的地址为: 0x0300B000 + 0x0058 =PC_CFG0 寄存器的偏移量(0x0048)2.3 PC_CFG1 的偏移量(0x004C)PC_CFG2 的偏移量(0x0050)

2024-12-10 18:41:34 979

原创 树莓派开发笔记

VFS(Virtual File System)是操作系统中的一个概念,它为不同的文件系统提供了一个统一的接口。这样,用户和应用程序就可以通过这个统一的接口来访问各种不同的文件系统,而不需要关心底层的具体实现细节,简化了程序员开发流程,不管是磁盘还是设备都可以用open, read, write进行操作。例如,用户输入了下面这个shell命令,/media/usb使用的是 FAT32 文件系统,/documents。

2024-12-07 21:49:21 778

原创 解决Ubuntu下无法远程登录

【代码】解决Ubuntu下无法远程登录。

2024-11-28 22:05:32 1838

原创 Qt——天气预报项目

1.窗口1:使用水平布局,内包含俩个QLabel类和一个QLineEdit类这里可以设置LineEdit中的提示文字 2.窗口2:使用栅格布局,这个天气图标组件的大小需限制一下 3.窗口3:里面包含一个子窗口,设置子窗口背景样式为橘色子窗口中的组件先垂直布局,后水平布局。最后整体再来一个栅格布局4.窗口4:里面包含6个子窗口。子窗口0401、0402、0406都需要进行栅格布局子窗口0401和0406中的组件是由俩个QLabel类拼接在一起的。 5.最后给4个窗口整体进行垂直布局即可解决方法:重写鼠标点击事

2024-11-19 01:35:02 1169

原创 QT——自定义控件绘图

当窗口或控件第一次出现在屏幕中,系统或窗口就会生成QPaintEvent事件,通知窗口进行自身的绘制窗口大小改变时:当用户改变窗口的大小时,窗口中的内容通常需要重新绘制以适应新的尺寸如果窗口被其他窗口遮挡,然后又重新露出来,被遮挡的部分通常需要重新绘制通过调用QWidget的update()或repaint()方法,可以手动触发重绘事件。在Qt应用程序中,通常通过重写QWidget的paintEvent(QPaintEvent*)方法来处理绘制逻辑。

2024-11-03 21:01:19 1589 1

原创 QT——记事本项目

自定义按键涉及到的事件有鼠标的进入,离开,点击在当前项目中添加一个mybutton类,并使其继承于QWidget类来到mybutton的头文件中,添加保护类成员函数:事件函数。并通过Alt+Enter快捷键快速向中添加事件函数的框架。添加完后通过F4快捷键快速切换到mybutton.h头文件中接着实现该按键在最初始的状态就是一个图片,首先去mybutton.h头文件中添加一个私有成员。然后去mybutton类的构造函数中利用pic对象去加载图片(注意在此之前先添加你需要的图片到整个工程文件中)

2024-10-30 20:42:55 1206 1

原创 QT——串口调试助手

槽函数中先通过sender()函数获取到发送信号的对象,接着获取按键的属性,接着根据属性生成对应的名称。Signals中包含信号检测是否超时。

2024-10-30 20:00:03 687

原创 QT——TCP网络调试助手

QT——网络调试助手

2024-10-30 19:04:39 1495

原创 基于orangePi的智能家居系统

inih是一个轻量级的C库,用于解析INI格式的配置文件。4.1. 下载libinih1源代码。

2024-09-07 21:33:44 1295

原创 u-boot/内核编译

6. 替换掉旧的u-boot,可通过sudo bash -x /usr/sbin/nand-sata-install查看烧录过程,然后进行手动烧录。4. 编译u-boot,生成u-boot-sunxi-with-spl.bin(u-boot SPL 和u-boot proper)1. 清理u-boot,因为上面的build.sh脚本第一步工作也是先做清理,再进行编译的。4. 可使用下面的命令无需通过图形界面选择,可以直接开始编译u-boot。7. 安装刚才上传的新的u-boot的deb包。

2024-05-21 14:16:26 570 1

原创 Makefaile编译工具

表示延迟展开赋值,即变量的值是在使用时才确定,可能会受到后面的赋值影响。例如,VAR_A = A,VAR_B = $(VAR_A) B,VAR_A = AA,那么最后VAR_B的值是AA B,而不是A B。:=表示直接赋值。

2024-05-12 23:20:38 739

原创 Linux交叉编译

vi .bashrc最后面添加。

2024-05-12 09:15:18 3665

原创 基于Linux的智能垃圾桶项目

garbage.py# 引入依赖包import osimport io# 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。# 如果您用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。

2024-05-11 00:17:49 1034 1

原创 SQLITE数据库

二. SQLite命令用法。进行编译(时间比较久)

2024-05-02 23:01:14 741 1

原创 Linux下的UDEV机制/守护进程

( 需要在 etc/udev/rules.d/ 下创建设备的相关规则,不然有可能udev机制生成的设备文件不具备可读可写的权限,adb无法成功通过该设备文件访问设备 )

2024-04-24 01:03:00 535

原创 orangePi语音刷抖音

SU-03TB6引脚是RX ,接到USB转TTL的TX。

2024-04-22 21:53:50 1833 1

原创 Orangepi 全志H616开发

镜像系统默认登录密码。

2024-04-08 22:37:35 2468

原创 Linux进程间通信

write_fifo.c 程序实现功能:a.打开"有名管道fifo1" b.不断地向管道中写入内容。FIFO以一种特殊的文件形式存放于文件系统中,与当前进程的生命周期无关。创建FIFO后,我们就可以用一般文件I/O函数对其进行操作。a. 创建"有名管道fifo1" b. 不断检测读取管道中内容并输出。当管道创建时,其会创建俩个文件描述符,FIFO,也称为命名管道。”,是UNIX系统IPC最古老的形式。fd[0]读打开,fd[1]写打开。//返回值:成功返回。//返回值:成功返回。

2024-03-13 23:42:51 685

原创 Linux系统下进程相关操作

程序是静态的概念,进程是程序的一次运行活动,程序跑起来了,系统中就多了一个进程。

2024-03-12 00:59:29 1033 1

原创 Linux系统下的文件操作

当我们执行完相关操作后,需调用close(fd)函数关闭文件,是因为我们对文件的操作都是针对动态文件进行操作的,而不是对静态文件,当我们对动态文件进行操作后,此时它就与静态文件不同步了,当我们close关闭动态文件时,内核会去更新静态文件。选项打开文件时,如果文件不存在,则会创建一个新文件。open()函数调用成功时,它们会返回一个未被进程打开的最小的文件描述符,可以用于后续的文件操作系统调用。选项打开文件时,如果文件中本来是有内容的,而且为只读或只写打开,则将其长度截为0(清空文件内容)。

2024-03-11 23:28:56 1050 1

原创 开发笔记——51单片机定时器

一,定时器怎么定时定时器的原理: 每经过一个机器周期,就加1:寄存器思考: 1.1 什么是晶振? 晶振(晶体震荔器),又称数字电路的"心脏”,是各种电子产品里面必不可少的频率元器件。数字电路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。 1.2 什么是时钟周期? 时钟周期也称为振荡周期,定义为时钟频率的倒数,时钟周期是计算机中最基本的、最小的时同单位,在一个时钟周期内,(CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时

2024-01-14 12:50:22 434 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除