自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

abcooxj的博客

嵌入式学习笔记记录

  • 博客(19)
  • 收藏
  • 关注

原创 LCD驱动

Framebuffer(帧缓冲)是系统为LCD分配的专用显存区域,用于存储所有像素的颜色数据,是应用程序与LCD硬件之间的“数据桥梁”。Framebuffer大小分辨率xres×yres×bpp8\text{Framebuffer大小} = \text{分辨率}(xres×yres) × \text{bpp} / 8大小分辨率xres×yres×bpp/8。

2025-10-13 20:17:34 1157

原创 Linux中input子系统

input_dev匹配场景判断逻辑无match函数仅需在中即可匹配有match函数先满足id_table匹配,再通过match函数的自定义逻辑(如设备树属性检查)示例(evdev handler)evdev的id_table为,支持所有bustype,因此几乎所有input_dev都能匹配。

2025-10-08 22:26:24 1004

原创 Linux I2C 子系统

因多数设备实现 SMBus,Linux 建议优先使用。即使 I2C 控制器无 SMBus 硬件支持,也可通过软件模拟 SMBus 协议。用于匹配i2c_client与i2c_driver。

2025-10-07 21:43:33 1458

原创 GPIO 子系统和 pinctrl 子系统

GPIO 控制器节点则用于描述 GPIO 控制器的相关信息,如“gpio - controller”属性标识该节点是一个 GPIO 控制器,“#gpio - cells = <2>”属性表示该控制器下每一个引脚要用 2 个 32 位的数(cell)来描述,其中第一个 cell 表示引脚编号,第二个 cell 表示有效电平。在设备树中,通过节点来描述硬件信息。pinctrl 子系统的节点用于指定引脚的复用配置,例如将某个引脚配置为 GPIO 功能或者其他功能(如 UART、I2C 等)。属性用于设备树匹配,

2025-10-03 00:00:12 1137

原创 同步与互斥

需求场景优先选择的机制核心考量简单计数器/标志位(无等待)原子操作(atomic_t)无上下文切换开销,性能最高中断/软中断上下文、短临界区自旋锁不能睡眠,且临界区短,自旋开销小于上下文切换开销用户上下文、独占访问互斥锁支持所有权、优先级继承,避免误操作和优先级反转用户上下文、多进程共享资源信号量(count>1)需控制访问进程数量,如“最多3个进程同时访问设备”

2025-09-30 23:55:44 717

原创 音视频流媒体处理分析

理解+网上查找,有问题可以联系。

2025-09-27 23:29:58 1235

原创 视频监控学习笔记

基于开发板的视频监控实现,本质是“底层驱动→数据采集→编码传输→外网访问→应用集成驱动确认:用v4l2-ctl和arecord确认摄像头、声卡驱动正常;局域网监控快速调试:用 mjpg-streamer 启动 HTTP 视频服务,浏览器查看;音视频同步:用 FFmpeg 推流到 Nginx,VLC 拉流观看;外网访问简单方案:花生壳映射 Nginx 端口,用公网域名拉流;稳定方案:公网服务器 + frp 实现内网穿透;应用集成。

2025-09-25 23:35:12 1311

原创 V4L2摄像头驱动系统

初始化设备→循环处理帧→释放资源”。只要记住 10 步标准化流程,再结合本文的代码示例,就能快速实现 Linux 下的视频捕获功能。用mmap映射缓冲区,避免数据拷贝,提升效率;始终用“队列-出队”模式管理缓冲区,确保循环复用;任何步骤失败都要调用cleanup释放资源,避免内存泄漏或设备占用。

2025-09-23 20:53:57 880

原创 Opencv的学习笔记

/ 重新定义大小:缩放图像(放大或缩小)// resize:图像缩放函数// 参数3:目标大小(Size(width, height)),若设为空,则按缩放因子计算// 参数4:x方向缩放因子;参数5:y方向缩放因子(0.5表示缩小到原来的1/2)// 若要固定尺寸(如缩放到400x300),可改为:waitKey(0);

2025-09-21 19:13:06 803

原创 Python学习笔记

Lambda 表达式是一种匿名函数,语法为 lambda 参数: 表达式,它可以快速定义简单的函数,常用于需要临时函数的场景,比如和 map、filter 等函数配合使用。常见的数据类型有整数、浮点数、字符串、布尔值、列表、元组、字典、集合等。括起来,内容不可修改,相比列表更节省内存,适合存储不可变的序列数据。函数能实现代码的复用,让程序结构更清晰。字符串是 Python 中常用的数据类型,有丰富的操作方法。是一种有序、可修改的容器,可存储多个元素。(小于等于),用于比较两个值的关系,结果为布尔类型(

2025-09-18 10:33:31 1025

原创 GPS定位在百度地图

首先需要创建一个本地HTML文件(如),在其中初始化百度地图,并定义一个接收Qt参数的JS函数(如注意:HTML中加载百度地图JS时,需替换为你的AK(与坐标转换API的AK可共用),加载代码如下:v=3.0&ak=你的百度AK " > </ script >v=3.0&ak=你的百度AK " > </ script >v=3.0&ak=你的百度AK " > </ script >v=3.0&ak=你的百度AK " > </ script >

2025-09-17 22:18:13 1088

原创 Qt 下基于 Modbus RTU(RS485)读取温湿度数据的实现

在工业自动化和物联网领域,Modbus 协议是常用的通信协议,结合 RS485 总线可实现设备间可靠的数据传输。

2025-09-17 00:06:27 808

原创 语音识别项目总结

通过以上各个环节的协同工作,实现了从音频采集、播放,到通过网络与百度语音服务交互,最终完成语音识别的全流程,为音频相关的应用开发提供了完整的技术路径。

2025-09-16 22:51:49 643

原创 视频播放器的学习笔记

这里将 QVideoWidget 的父对象设置为 ui->label,是为了利用 label 作为视频播放区域的容器。在播放按钮的实现中,再次调用 resize 方法是为了确保视频窗口能正确适应 label 的大小。这段代码实现了选择多个视频文件并加载到播放列表的功能,用户可以一次性添加多个文件进行连续播放。

2025-09-16 21:12:53 593

原创 C++的学习笔记

C++笔记

2025-09-16 20:53:28 576

原创 树与二叉树:从基础到哈夫曼编码

本文系统介绍了树与二叉树的基本概念、核心性质和应用场景。主要内容包括:1)树的基础概念与术语,如根节点、叶子节点、度数等,以及树的核心性质;2)二叉树的特殊结构与性质,包括满二叉树、完全二叉树等类型及其遍历方法;3)哈夫曼树的构建原理及其在数据压缩中的应用;4)树与二叉树之间的转换规则。文章通过图示和示例,深入浅出地阐述了这些重要数据结构的内在联系和实际应用价值,为理解更复杂的树形结构奠定了基础。

2025-09-11 16:15:15 804

原创 LoRa与WiFi模块通信

LoRa模块,ESP8266

2025-09-11 15:55:29 693

原创 数据结构-链表

形成一个闭环。

2025-09-11 15:37:23 604

原创 MQTT开发与JSON-RPC

JSON-RPC是一种基于JSON的远程过程调用协议,适用于前后台或客户端与服务器之间的通信。

2025-09-11 15:29:47 339

空空如也

空空如也

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

TA关注的人

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