- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 从0开始学linux韦东山教程Linux驱动入门实验班(7)
本文介绍了基于DHT11温湿度传感器的Linux驱动开发过程。作者通过分析DHT11产品手册,详细阐述了传感器的工作原理和数据传输协议,包括启动信号、响应信号和数据格式。驱动设计部分展示了初始化代码,包括中断服务函数注册、引脚配置和环形缓冲区实现。文章重点讲解了DHT11的通信时序(共84个边沿)和数据处理方法,为Linux环境下开发传感器驱动提供了实践参考。作者采用中断方式采集数据,通过分析高低电平持续时间来解析温湿度值。
2025-07-30 19:23:40
618
原创 从0开始学linux韦东山教程Linux驱动入门实验班(6)
本文记录了基于韦东山教程的Linux步进电机驱动学习过程,重点介绍了GPIO引脚配置和驱动实现。作者通过分析原理图确定GPIO4_19至GPIO4_22作为控制引脚,详细讲解了驱动代码中电机旋转方向控制逻辑(顺时针/逆时针)和时序控制(mdelay)。驱动通过file_operations结构体提供write接口,应用程序通过写入步数(正负表示方向)和延时参数来控制电机。文章包含完整的驱动代码和简要的应用层调用说明,为Linux环境下步进电机控制提供了实践参考。
2025-07-27 19:25:08
215
原创 从0开始学linux韦东山教程Linux驱动入门实验班(5)
本文介绍了超声波模块驱动开发过程中的关键问题及解决方案。文章首先阐述了引脚配置问题,通过原理图分析确定了GPIO4_19(115)和GPIO4_20(116)引脚作为触发(trig)和响应(echo)信号端。接着详细解析了驱动代码实现,包括:1)使用环形缓冲区处理数据;2)通过ioctl控制触发信号;3)中断处理函数记录上升/下降沿时间差;4)内核定时器实现精确计时。驱动实现了非阻塞读取模式,并将时间差数据通过fasync机制通知用户空间。文章还提供了完整的驱动框架代码,包括模块初始化和资源释放等标准操作。
2025-07-26 18:29:29
660
原创 从0开始学linux韦东山教程Linux驱动入门实验班(4)
本文详细介绍了Linux驱动开发的学习过程,重点分析了LED驱动程序的代码实现。文章分为驱动代码和应用代码两部分:首先解析了驱动八股文代码框架,包括GPIO中断处理、定时器设置等核心模块;然后详细讲解了LED驱动程序的实现思路,包括引脚配置、读写函数设计等关键代码。文中还提供了实用的Linux命令说明,如cat /sys/kernel/debug/gpio查看GPIO状态等。通过具体代码示例(如gpio_desc结构体定义、gpio_drv_read/write函数实现)。
2025-07-20 15:58:28
889
原创 从0开始学linux韦东山教程Linux驱动入门实验班(3)
摘要:本文记录了从零开始学习Linux驱动的过程,重点围绕韦东山教程中的驱动实验展开。文章详细解析了bear make编译工具的使用、驱动临时文件(如/dev/hello)的生成机制,以及device设备节点的创建原理。通过逐行分析驱动代码(如hello_read、hello_write等函数),探讨了内核模块加载(insmod)、设备注册(register_chrdev)和用户空间交互(copy_to_user)等核心概念。实验部分验证了驱动读写功能,并解释了/proc/devices与设备节点的关联性。
2025-06-29 17:08:42
929
原创 从0开始学linux韦东山教程Linux驱动入门实验班(2)
这篇文档总结了Linux驱动开发学习过程中的关键问题和解决方案。主要内容包括:1)使用grep命令查找内核函数;2)VSCode开发技巧(快捷键Ctrl+P全局搜索、Ctrl+H文件内搜索);3)bear make命令生成编译配置文件;4)驱动程序hello_drv2.c的编写要点,特别是module_init机制;5)驱动测试程序编写;6)程序编译和上传开发板的完整流程。作者通过实践解决了驱动开发中的实际问题,包括代码查找、编译配置、驱动结构体填充等,并分享了对Linux驱动开发的理解。
2025-06-28 16:07:41
967
原创 从0开始学linux韦东山教程Linux驱动入门实验班(1)
摘要:本文记录了学习韦东山Linux驱动教程的实践过程,重点解决任务节点查看、tslib-1.21文件编译测试等问题。主要内容包括:1)更新git仓库(git pull);2)ADB安装使用;3)Ubuntu串口连接开发板调试(dmesg/ls命令);4)VSCode操作及字体调整;5)网络文件传输配置(ifconfig)和Markdown文件查看方法。文章详细记录了开发板调试中遇到的串口连接、权限设置等典型问题及解决方案,为Linux驱动初学者提供了实用参考。
2025-06-21 20:53:35
588
1
原创 从0开始学linux韦东山教程第四章问题小结(5)
本文介绍了基于韦东山教程的Linux学习笔记,重点关注tslib库的编译与应用开发。主要内容包括:1)通过lsof查看输入设备节点;2)正确上传和解压tslib-1.21源码包的注意事项;3)交叉编译tslib的详细步骤及常见错误处理;4)使用tslib库开发手指距离测量程序的过程。特别强调了解压文件需在Linux环境下进行,以及编译过程中架构匹配的重要性。笔记记录了从环境配置到程序开发的完整流程,对嵌入式Linux初学者具有实用参考价值。
2025-06-18 18:45:24
583
原创 从0开始学linux韦东山教程第四章问题小结(4)
本文记录了学习Linux输入设备开发过程中遇到的问题及解决方案。重点关注文本特性设置和VS Code调试技巧,通过分析/dev/input/event设备的读取程序,详细解析了输入设备信息获取的实现原理。程序使用ioctl系统调用获取设备标识和支持的事件类型,通过位操作解析事件位图。文章提供了完整的代码分析,包括头文件作用、数据结构说明和逐行逻辑解析,特别对EVIOCGID和EVIOCGBIT等关键操作进行了重点说明,为嵌入式Linux输入设备开发提供了实用参考。
2025-06-13 14:54:36
1057
原创 从0开始学linux韦东山教程第四章问题小结(3)
这节博客主要讲的是,文本特性设置,以及怎么用vs code调试去逐行理解代码,明白其工作原理。文字内容方面不做过多的研究,今后有需求再深入。
2025-06-03 18:53:11
534
原创 从0开始学linux韦东山教程第四章问题小结(2)
本文总结了学习Linux过程中遇到的问题,重点探讨了文本特性设置和VS Code调试代码的方法。在文本特性设置部分,详细介绍了ls -l命令的使用及文件权限的解读,并通过实例展示了如何设置文件权限。在VS Code调试部分,作者通过一个综合实验,逐步讲解了如何逐行调试代码,理解其工作原理,并特别强调了char *argv[3]与char argv[3]的区别。文章还涉及了文件打开、读取和写入的操作,帮助读者更好地掌握Linux编程中的调试技巧。
2025-05-21 20:55:52
656
原创 从0开始学linux韦东山教程第四章问题小结(1)
本文总结了学习Linux过程中遇到的问题及解决方案,主要围绕hello驱动程序的编译与上传、Makefile的使用及其语法、以及open.c文件的详细解读。首先,通过VS Code验证并编译hello驱动程序,确保环境配置正确。其次,介绍了Makefile的作用及其语法,展示了如何通过Makefile提高编译效率。最后,详细解析了open.c文件的代码,帮助理解文件操作的基本原理。文章旨在为初学者提供实用的学习参考,解决实际开发中可能遇到的问题。
2025-05-18 16:35:55
838
原创 YOLO格式数据集制作以及训练
本文详细介绍了如何制作YOLO格式的数据集,并以铁轨数据为例进行说明。首先,通过手机或其他设备拍摄视频,并对视频进行重命名和排序。接着,使用Python代码从视频中每隔1秒提取一张图片,并保存到指定文件夹。文章提供了两种方法:一种是逐个视频处理,另一种是批量处理所有视频。最后,生成的图片将用于YOLO模型的训练。整个过程包括视频处理、图片提取和数据集准备,为后续的模型训练奠定了基础。
2025-05-15 11:19:49
1172
原创 从0开始学linux韦东山教程第三章问题小结(4)
本文总结了学习Linux过程中遇到的问题,特别是基于韦东山教程的嵌入式Linux应用开发。文章详细描述了如何将hello驱动程序在Ubuntu上编译并下载到开发板的过程,重点介绍了使用adb协议进行数据传输的步骤。文章还解析了Makefile文件的结构和功能,解释了如何通过Makefile编译符合开发板内核要求的驱动程序。此外,文章还讨论了nfs网络传输的弊端,并提供了通过adb传输文件的解决方案。最后,文章展示了如何在开发板上加载和测试编译好的内核模块,并提供了相关的命令行操作。
2025-05-14 19:32:14
871
原创 从0开始学linux韦东山教程第三章问题小结(3)
本文总结了在跟随韦东山教程学习Linux过程中遇到的问题及解决方案,主要涉及git仓库数据提取、adb安装和设备树内核更新。首先,通过git命令行下载源码文件,确保代码获取正确。其次,详细介绍了在Ubuntu系统中安装adb的步骤,并解决了安装过程中可能遇到的锁文件问题。最后,讲解了如何配置交叉编译环境并编译内核,包括设置环境变量、清理编译环境、生成内核配置、编译内核映像和设备树文件,并将生成的文件复制到指定目录。
2025-05-11 22:07:13
1114
原创 从0开始学linux韦东山教程第三章问题小结(2)
本文总结了学习Linux过程中遇到的常见问题及解决方案,主要涉及PC远程访问Ubuntu配置、Uboot环境设置、串口控制开发板等。具体问题包括:1. 远程访问服务器时命令执行不一致,但实际访问正常;2. Source Insight 4.0安装后未激活,需通过外部链接激活;3. 在Ubuntu中修改代码而非Windows;4. 理解GCC编译文件的作用及编译过程;5. 无法下载BSP的解决方法,如检查Git安装、避免使用校园网等;6. 未配置永久交叉编译工具链的原因;7. 串口连接开发板的输出细节。
2025-05-10 17:07:29
941
原创 从0开始学linux韦东山教程第一三章问题小结(1)
本人从0开始学习linux,使用的是韦东山的教程,在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。本博客关键词:VMware、Ubuntu、网络网口
2025-05-09 19:07:33
985
1
原创 路由器风扇PID温度自动调节
由于家里的路由器有点烂,只要长时间工作发烫后就和我说再见,本人也被这个断网折磨得苦不堪言。为此就想能不能设计一款带屏幕显示温度,风扇速度的,可以按键控制风扇速度同时还可以温度闭环控制的小装置。基于以上想法就有了本文的由来,这篇文章的目的是我希望你看完之后能明白怎么设计,各个模块是怎么工作的需要微控制器怎么配合它,我将以通俗一点的话语去讲述,毕竟这是博客不是论文。如有侵权立马删稿。
2025-01-05 15:30:10
926
原创 yolov1搭建介绍及代码撰写详解(总结6)
本文是介绍yolov1目标检测网络搭建,个人对其的知识总结,以及结合论文进行讲解,网络设计的知识点,代码撰写部分本人是借鉴的大佬的源码(下文会给出网址),基于pytorch编写代码。作为一个刚入门的小白怎么去学习别人的代码,一步一步的去理解每一行代码,怎么将网络设计变成代码,模仿大佬的代码去撰写。作为小白如有不足之处请批评指正哈。
2024-11-04 14:30:01
1261
原创 Resnet搭建介绍及代码撰写详解(总结5)
本文是介绍ResNet目标检测网络搭建,个人对其的知识总结,以及结合论文进行讲解,网络设计的知识点,代码撰写部分本人是借鉴的大佬的源码(下文会给出网址),基于pytorch编写代码。作为一个刚入门的小白怎么去学习别人的代码,一步一步的去理解每一行代码,怎么将网络设计变成代码,模仿大佬的代码去撰写。作为小白如有不足之处请批评指正哈。
2024-10-30 14:16:24
882
原创 openpose二维骨架搭建介绍及代码撰写详解(总结4)
本文是介绍openpose网络二维骨架搭建,个人对其的知识总结,以及结合论文进行讲解,网络设计的知识点,代码撰写部分本人是借鉴的大佬的源码(下文会给出网址),基于pytorch编写代码。作为一个刚入门的小白怎么去学习别人的代码,一步一步的去理解每一行代码,怎么将网络设计变成代码,模仿大佬的代码去撰写。作为小白如有不足之处请批评指正哈。
2024-10-17 22:12:50
1114
原创 C3D网络介绍及代码撰写详解(总结3)
本文是介绍C3D网络,个人对其的知识总结,以及结合论文进行讲解,网络设计的知识点,以及代码如何撰写,基于pytorch编写代码。作为一个刚入门的小白怎么去学习别人的代码,一步一步的去理解每一行代码,怎么将网络设计变成代码,模仿大佬的代码去撰写。作为小白如有不足之处请批评指正哈。我们提出了一种简单而有效的时空特征学习方法,使用在大规模监督视频数据集上训练的深度3维卷积网络(3D ConvNets)。
2024-10-12 13:48:38
2625
原创 GoogleNet网络介绍及代码撰写详解(总结2)
本文是介绍GoogleNet网络,个人对其的知识总结,网络设计的知识点,以及代码如何撰写,基于pytorch编写代码。作为一个刚入门的小白怎么去学习别人的代码,一步一步的去理解每一行代码,怎么将网络设计变成代码,模仿大佬的代码去撰写。作为小白如有不足之处请批评指正哈。注:池化窗口全文称为池化核训练时刚进入卷积时正常。
2024-10-06 14:15:59
1311
原创 电磁炮设计
这个项目电磁炮主要是,测试电磁炮原理部分的简易制作,对原理有初步认识,升压电路采用的是boost电路,IGBT作为开关管,电解电容作为储能元件。
2024-08-23 11:12:25
3514
12
原创 电压检测之比较电路
设计这款电路主要是本人在锂电池充电电路中挖了一个坑,对电源显示芯片的数据手册内容撰写不够详细的不好感受,所以自己根据比较电路的思想设计出了电压检测并反馈的电路,亦在提供一种电压检测的思想不需要借助ADC采集,在电路硬件上去实现。此文较短,且君仍需细细品味。
2024-08-16 15:55:48
4089
1
原创 锂电池充电板电路设计
写这篇文章的目的主要是个人经验的总结,希望能给开发者们提供一种锂电池充电电路以及电源显示的电路思路。接下来从以下几个方面讲述电路。设计这款电路的初衷是想用一块硬币大小的锂电池作为供电电源(3.5V-4.2V),降压供给3.3V电源;升压供给5V电源;拥有锂电池充电电路可以通过TypeC接口充电并且可以显示电量以及电池是否充满。为此而设计此电路,为大家提供一种新思路。
2024-08-07 11:35:43
5787
7
原创 (五)STM32F407 cubemx IIC驱动OLED(3)软件篇
这篇文章是对OLED 软件配置方面的介绍,如何参考数据手册编写代码。
2024-05-13 13:37:02
1717
1
原创 (五)STM32F407 cubemx IIC驱动OLED(2)硬件篇
本文不会概述OLED的物理工作原理,而是从技术手册的角度上简述它。首先要学习OLED就得先了解其驱动芯片,**SSD1306**。
2024-05-13 12:01:26
1947
转载 (六)STM32F407 cubemx MPU6050物理知识工作原理介绍(1)
要解答这个问题,我们需要了解 MPU6050 的 ADC(模数转换器)的工作原理。ADC 是一种将模拟信号转换为数字信号的电子元件,它的工作过程是通过对模拟信号进行多次采样,并将采样结果进行量化,最终得到一个数字值。MPU6050 内置的 ADC 是 16 位的,这意味着它可以表示从 0 到 65535 的整数值。然而,在角速度感测器的范围内,最大的正值是 2000°/sec,最大的负值是 -2000°/sec。
2024-04-25 12:26:22
315
原创 (二)STM32F407 cubemx按键点灯
废话不多说直接开始主题,本人是基于STM32F407VET6芯片,但是意在你看懂这篇文章后,不管是F1,F4,H7等一系列系统点灯按键配置都能明白如何通过参考手册去学习配置。而不是Ctrl c,Ctrl v。首先要明白一个知识点,led灯、按键需要用到什么,引脚输出功能,引脚读取功能?这些功能具体到底是什么?
2024-01-04 23:23:04
2125
1
原创 arduino 时间灯控
arduino 时间灯控总体介绍一下这个灯控是具体干啥的。最开始是老师看了我那个阿里云灯控之后,然后来活了。做一个可以控制220V灯通过时间控制的通过按键设置时间的灯控,然后就有了这个创作。开始搭建前,就要有一个大致的思路,于是我画了一个思维导图。大概讲解一下我的思路.1.我是基于arduino Nano制作的(arduino uno也可以引脚接法一模一样),之所以选择它,是因为其体积小,之后打算画一块板子,将它们直接插上去,省得杜邦线绕来绕去2.按键就用了两个,通过按键来进行具体设置,我的想法是
2021-12-24 16:00:01
2571
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人