自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 番外(二):K210的外设操作及串口通讯

前文已经简单介绍了基于K210的色彩识别和数字识别,那么接下来就是一些简单的外设操作(包括定时器、按键、串口等),之后就可以和我们的主控进行连接了。

2024-04-28 16:30:11 704

原创 番外(一):基于K210的颜色识别和数字识别

近期笔者有一个小项目需要进行视觉识别这部分,于是先暂时学习更新一下这部分内容。

2024-04-28 16:29:34 594

原创 Linux驱动开发笔记(一)字符驱动

本文将通过字符驱动正式展开Linux驱动开发的学习。

2024-04-19 17:59:34 831

原创 Linux驱动开发笔记(零)驱动基础知识及准备

在简单结束应用层的开发学习后,本系列将开启驱动层的学习,本文作为该系列第一期旨在归纳前期需要准备的知识。Linux内核模块是Linux内核向外部提供的一个插口,也被称为动态可加载内核模块(Loadable Kernel Module,LKM)。它是一个具有独立功能的程序,可以被单独编译,但不能独立运行。在运行时,内核模块被链接到内核作为内核的一部分在内核空间运行。内核模块的主要作用是扩展内核的功能,而无需重新编译整个内核。例如,内核模块通常用于添加新的设备驱动程序、文件系统或其他功能到内核中。

2024-04-19 17:13:07 749

原创 Linux应用开发笔记(八)SPI应用层开发及其框架

与IIC类似,SPI协议也是我们的老朋友了,这里依然不多作赘述,本文将介绍SPI的驱动框架和应用程序编写。

2024-04-14 16:38:24 1063

原创 Linux应用开发笔记(七)IIC应用层开发及其框架

之前笔者在STM32和FPGA中已经多次讲述了IIC的基础知识,这里不在展开“扫盲”,感兴趣的朋友可以看一下往期笔记,此次仅仅带大家简单回顾并展开Linux下的IIC体系的学习。

2024-04-14 16:38:17 838

原创 Linux应用开发笔记(六)串口和TTY体系(串口子系统)

串口是我们在调试中常常需要的一环,它可以帮助我们实时打印信息,其基础知识在之前的学习笔记中已经提到了,感兴趣或者用什么问题可以回顾一下,这部分主要解释Linux下的TTY体系。TTY设备不仅支持UART(通用异步收发传输器)通信,还支持键盘输入、显示器输出以及更复杂的功能,如伪终端。TTY体系在Linux系统中指的是一种终端设备体系,它提供了用户与操作系统之间的交互界面。TTY一词源于Teleprinter(电传打印机),在早期的计算机系统中,TTY是以打字机作为输入输出设备的终端系统。

2024-04-11 16:51:36 864

原创 Linux应用开发笔记(五)网络编程(二)多线程编程

在前面的学习中,我们提到了ROTS操作系统的特点,即可以多线程操作命令,这样的好处是可以同时操作好几个目标,而不是因为上一个目标未结束使得需要的操作陷入阻塞状态。

2024-04-11 16:49:36 1026 1

原创 Linux应用开发笔记(四)网络编程(一)TCP和UDP

之前我们常常使用串口等进行信息打印,但是这种方式并不适用与多主(从)机的网络系统,这里编引入了网络编程的概念。简单来说,Linux网络编程涉及使用套接字(sockets)进行进程间通信,特别是在不同主机上的进程之间。套接字提供了一种标准的接口,用于在不同主机之间传输数据,无论它们使用的是何种操作系统或网络协议。

2024-04-02 22:32:08 654 1

原创 Linux应用开发笔记(三)文件编译常用函数

在文件I/O编辑中,我们常常用到open(),read(),write(),lseek()和close()函数,本文将深入简出地介绍这些函数的功能和参数。

2024-04-02 15:23:43 389 1

原创 Linux应用开发笔记(二)Makefile及其编写

在Linux中编译程序需要使用make命令,而make则依赖于Makefile文件。在实际的使用中,Makefile关注于项目的构建过程,而GCC则关注于源代码的编译。两者在软件开发中各有其重要作用,通常一起使用以完成项目的编译和构建任务。

2024-03-31 17:36:37 531 1

原创 Linux应用开发笔记(一)交叉编译及执行

GCC(GNU Compiler Collection)是一个开源的编译器集合,包含C、C++、Objective-C、Fortran、Java、Ada和Go语言的编译器。它原本是GNU项目的编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器。GCC的初衷是为GNU操作系统专门编写的一款编译器。

2024-03-31 13:13:06 461 1

原创 嵌入式八股文(一) C语言篇

笔者在学习时发觉自己的C语言很久没有系统性重温一遍了,本期主要是对于嵌入式中常用的C语言语法进行一个汇总。

2024-03-29 15:24:16 1206 1

原创 学习笔记之Linux的GPIO控制

笔者在学习到点灯实验时,想到直接进行小灯的参数修改比较简单,于是想通过直接对GPIO进行操作从而达到相同的效果(这里可能需要修改设备树,这款笔者也不是很懂不敢乱说,于是借用另一个32开发板的小灯进行测试)。

2024-03-25 21:18:29 659 1

原创 学习笔记之Linux设备树

在Linux驱动程序中,设备树用来替代Platform_device等结构体用来描述设备的板级信息。Linux设备驱动程序通过特定的API接口从设备树中获取设备信息来对设备进行初始化和操作。详细的讲设备树是一种树状的结构,由节点(Node)和属性(Property)组成。每个节点描述一个硬件设备或资源(例如:CPU、时钟、中断控制器、IO控制器、SPI总线控制器、I2C总线控制器、存储设备等),节点通过父子关系和兄弟关系进行连接,如下所示以一个根节点开始。根节点可以包含一些全局属性和设备节点。

2024-03-25 16:34:04 910 1

原创 学习笔记之Linux常用指令及VMware的一些常见问题

由于暂时没有FPGA的项目,对FPGA的学习先暂时告一段落,后续还会更新(PS:ROTS有机会再填坑吧)。这段时间,我将更新基于立创泰山派的LINUX系统操作。本次的学习将全程采用立创推出的泰山派(2+8版本)。

2024-03-23 19:41:50 274

原创 学习笔记之FPGA的IP核及其应用

FPGA的IP核是在可编程逻辑器件(FPGA)中可以实现特定功能的可重用模块,它们以形式化的方式描述了硬件的功能和接口。如图所示为 PLL 大体的一个结构模型示意图,我们可以看出这是一个闭环反馈系统,其工作原理和过程主要如下:2、鉴频鉴相器的输出连接到环路滤波器(LF)上,用于控制噪声的带宽,滤掉高频噪声,使之稳定在一个值,起到将带有噪声的波形变平滑的作用。如果鉴频鉴相器之前的波形抖动比较大,经过环路滤波器后抖动就会变小,趋近于信号的平均值。3、经过环路滤波器的输出连接到压控振荡器(VCO。

2024-03-18 19:29:55 1021 1

原创 学习笔记之FPGA的SPI通讯

SPI(Serial Peripheral Interface)是一种同步串行通信协议,通常用于在嵌入式系统中连接微控制器和外部设备。它允许微控制器与多个外设同时进行全双工通信,实现高速数据传输。SPI协议通常用于连接存储器芯片、传感器、显示屏、通信模块和其他外设。 SPI协议的基本工作原理如下:微控制器通过主设备选择(SS)引脚选择要与之通信的外设,并通过时钟信号(SCLK)同步数据传输。它还使用主输出主输入(MOSI)和主输入主输出(MISO)引脚进行双向数据传输。在传输过程中,主设备

2024-03-06 20:20:25 955 1

原创 学习笔记之FPGA的IIC实验(包含EEPROM实验和OLED实验)

对IIC的具体分析,笔者在之前的贴子中已经介绍过了,本期主要是对FPGA的IIC实现进行论述。

2024-01-09 21:09:28 391 1

原创 学习笔记之FPGA的串口通信

前段时间笔者已经就STM32的通讯协议发了一篇总结,最近在学FPGA时决定重新写一篇关于fpga的通讯协议的内容。本章将着重介绍异步UART协议和USB、RS232。

2023-08-16 15:44:06 94 1

原创 学习笔记之FreeRTOS实时操作系统

实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。这里要注意,RTOS不是指某一个确定的系统,而是指一类系统。比如 UCOSFreeRTOSRTXRT-Thread等这些都是RTOS 类操作系统。本次所学的FreeROTS就是一个免费的。

2023-08-10 16:34:08 287 1

原创 学习笔记之初识FPAG

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专门集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

2023-08-08 22:44:36 192

原创 学习笔记之指针的详解和应用

笔者在学习DMA实验时,发现对指针的理解和使用还是有些不足,本章将详尽地重新梳理一遍指针的知识和应用。

2023-08-06 17:50:38 49

原创 学习笔记之STM32的ov7670摄像头实验

OV7670是由OV(OmniVision)公司生产的一颗1/6寸的CMOS VGA图像传感器。该传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。该产品VGA图像最高达到30帧/秒,用户可以完全控制图像质量、数据格式和传输方式。

2023-08-02 10:52:07 5059

原创 学习笔记之通信接口的总结

对于常见的通信方式的总结

2023-08-01 14:25:54 188 1

原创 学习笔记之FATFS文件系统

FATFS 是一个通用的文件系统(FAT/exFAT)模块,用于在小型嵌入式系统中实现FAT文件系统。由于FATFS组件的编写遵循ANSI C(C89),完全分离于磁盘 I/O 层,故而不需要通过任何修改便可以嵌入到资源有限的MCU中,如 8051, PIC, AVR, ARM, Z80, RX等等。除此之外,FatFs可以让使用者仅通过调用其提供的一些接口函数(例如f_open等),就可以在指定的区域中读写数据,且可以不考虑由于磁盘内部预先的数据分区不够使得文件储存出现错误的情况。

2023-07-19 14:21:24 336

原创 学习笔记之基于STM32F103的SD卡实验

SDIO方式的SD卡实验

2023-07-17 16:41:06 410 1

超声波监视器(OV7670+STM32+HC-SR04)

通过学习,笔者深刻意识到可以充分发挥超声波模块HC-SR04与OV7670的协同作用。一旦有物体靠近,系统将自动触发拍照记录功能。随后,利用FATFS进行图片查看,使得整个系统具备监视器的功能。这个小设计不仅实用,而且具有广泛的应用前景。,如果存在什么问题可以私信笔者,侵权必删。

2024-01-19

空空如也

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

TA关注的人

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