- 博客(1916)
- 资源 (10)
- 收藏
- 关注
原创 国产单片机开发系列文章汇总(共574篇2024/11/01更新)
本文将对常见的国产系列单片机开发相关文章进行汇总,文章将按单片机的指令集进行分类汇总,持续更新。
2024-11-02 10:49:45
115
原创 数字图像处理与Python语言实现系列文章汇总(共115篇)
数字图像处理与Python语言实现专栏将使用Python语言实现经典数字图像处理领域的经典图像处理算法,为深度学习图像处理打下基础。专栏将包含:图像颜色空间转换、图像几何变换、图像频域变换、图像降噪、图像增强、图像形态学处理、图像边缘检测、图像特征提取、图像滤波、图像分割、图像重建、高性能图像处理等等。
2023-03-19 10:36:30
1985
4
原创 物联网全栈开发实战系列文章汇总(共1184篇,持续更新-2024.11.01)
物联网全栈开发实战专栏将涵盖各类单片机、嵌入式设备及驱动开发实例。从仿真到硬件,从单个实例到综合实例,从单个设备到多个设备的各种方式通信、联网等等。以实例为线索,从硬件到用户终端,掌握物联网全栈开发基础。.................................
2022-04-27 22:55:29
8771
6
原创 【国产MCU】-GD32F470-串行外设接口(SPI)
串行外设接口(Serial Peripheral Interface,缩写为 SPI)提供了基于 SPI协议的数据发送和接收功能,可以工作于主机或从机模式。 SPI接口支持具有硬件 CRC计算和校验的全双工和单工模式。 SPI5还支持 SPI四 线 主机模式。
2024-11-24 15:45:26
290
原创 【RK3588 Linux 5.x 内核编程】-内核线程与Mutex
在前面的文章中,介绍了如何Linux内核中的线程,但是在实际的使用过程中,可能面临线程间的竞争问题,并且需要解决线程间的竞争导致的死锁、线程饥饿等问题。为了避免竞争条件,Linux内核提供了很多方法,比如 Semaphore、Spinlock 和 Mutex。本文将详细介绍在Linux内核线程中如何使用Mutex。
2024-11-23 08:18:19
231
原创 【国产MCU系列】-GD32F470-内部集成电路总线接口(I2C)
I2C总线是PHILIPS公司推出的一种双线式半双工串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的性能串行总线。用于连接微控制器及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。
2024-11-21 12:02:48
130
原创 【RK3588 Linux 5.x 内核编程】-内核中断与Tasklet
在前面的文章中,对Linux的内核中断做了详细的介绍。我们知道,在Linux内核的中断机制中,为了快速响应设备中断,Linux内核将中断分为上半部分(Top Half)和下半部分(Bottom Half)。上半部分将在收到中断后立即运行,并仅执行时间关键的工作,而下半部分用于处理数据,让上半部分处理新传入的中断。
2024-11-21 09:38:31
164
原创 【国产MCU系列】-GD32F470-高级定时器
GD32F4系列单片机有五种定时器:高级定时器(定时器0/7),通用定时器L0(定时器1~4),通用定时器L1(定时器8/11),通用定时器L2(定时器9/10/12/13)以及基本定时器(定时器5/6)。
2024-11-20 09:29:22
186
原创 【RK3588 Linux 5.x 内核编程】-内核线程
线程是并发处理中使用的编程抽象。 内核线程是在内核中实现后台任务的一种方式。 后台任务可以忙于处理异步事件,也可以处于休眠状态,等待事件发生。 内核线程类似于用户进程,只是它们位于内核空间并可以访问内核函数和数据结构。 与用户进程一样,内核线程似乎由于抢占式调度而独占处理器。
2024-11-20 09:21:14
169
原创 【杂谈】-了解控制器局域网络(CAN)协议
控制器局域网络(CAN)协议是一种在车辆中嵌入的电子设备之间进行通信的方法,例如引擎管理系统、主动悬挂系统、中央锁、空调、气囊等。这一概念由罗伯特·博世有限公司在1983年提出,旨在提高汽车的质量和安全性,增强汽车的可靠性和燃油效率。
2024-11-17 08:06:25
853
原创 【国产MCU系列】-GD32F470-通用同步异步收发器(USART)
在GD32F4单片机中,USART不仅支持标准的异步收发模式,还实现了一些其他类型的串行数据交换模式,如红外编码规范, SIR,智能卡协议 LIN,以及同步单双工模式。它还支持多处理器通信和 Modem流控操作( CTS/RTS 。数据帧支持从 LSB或者 MSB开始传输。数据位的极性和 TX/RX引脚都可以灵活配置。所有USART都支持DMA功能,以实现高速率的数据通信。
2024-11-17 07:59:34
394
原创 【RK3588 Linux 5.x 内核编程】-内核中的链表(Linked List)及使用
链表是一种非常重要的数据结构,它允许大量存储和高效地操作数据。 大部分内核代码都是在这个数据结构的帮助下编写的。 所以在Linux内核中,不需要自己实现Linked List,也不需要使用第三方库。 它有一个内置的链表,即双向链表。
2024-11-16 06:30:29
214
原创 【国产MCU系列】-GD32F470-直接存储器访问控制器(DMA)
直接内存访问(DMA)控制器是一个专门的可编程硬件单元,它允许MCU外设不经过Cortex-M核心的干预直接访问内部存储器。CPU从数据传输产生的开销中完全解放出来(除了与DMA配置相关的开销),并且可以并行执行其他活动¹。DMA设计为双向工作(即,它允许从内存到外设的数据传送,反之亦然),GD32F4微控制器都提供两个独立的DMA。
2024-11-15 09:17:18
305
原创 【RK3588 Linux 5.x 内核编程】-内核中断与工作队列(Work Queue)
在前面的文章中,介绍了Linux内核的中断及中断处理机制。我们知道,中断不适合处理长时间任务,Linux的中断处理机制中上半部(Top Half)和下半部(Bottom Half)巧妙在将中断响应和中断任务处理分离,即,在上半部中,快速响应响应,仅执行时间关键的工作,例如确认收到中断或重置硬件。然后将中断处理任务交由下半部处理
2024-11-15 09:12:19
439
原创 【国产MCU系列】-GD32F470-GPIO输入与外部中断
EXTI(中断/事件控制器)包括23个相互独立的边沿检测电路并且能够向处理器内核产生中断请求或唤醒事件。EXTI有三种触发类型:上升沿触发、下降沿触发和任意沿触发。EXTI中的每一个边沿检测电路都可以独立配置和屏蔽。
2024-11-14 15:40:25
182
原创 【RK3588 Linux 5.x 内核编程】-内核中断
中断是由来自硬件设备的电子信号产生的,并被引导到中断控制器(一个简单的芯片,将多条中断线路复用到处理器的一条线路)上的输入引脚。 这些是内核将完成的过程。
2024-11-14 15:37:17
638
原创 【Python编程实例】-Python中的__slots__详解
在Python编程中,每个类实例默认拥有一个名为`__dict__`的属性,用于存储实例变量。然而,在某些情况下,为了优化内存使用和提高性能,我们可以使用`__slots__`来限制实例属性的集合。本文将详细介绍`__slots__`的概念、用法及其优缺点,并提供一些实际示例和常见问题解答。
2024-11-09 08:59:56
41
原创 【国产MCU系列】-GD32F470通用GPIO操作
GD32F4最多可支持140个通用 I/O引脚( GPIO),分别为 PA0 ~ PA15 PB0 ~ PB15 PC0 ~ PC15 PD0 ~ PD15 PE0 ~ PE15 PF0 ~ PF15 PG0 ~ PG15 PH0 ~ PH15和 PI0 ~ PI11,各片上设备用其来实现逻辑输入 /输出功能。每个 GPIO端口有相关的控制和配置寄存器以满足特定应用的需求。 GPIO引脚上的外部中断在中断 /事件控制器( EXTI)中有相关的控制和配置寄存器。
2024-11-09 08:30:08
445
原创 【杂谈】-Linux系统编程涉及的一些相关概念
系统软件位于底层,直接与内核和核心系统库接口相连。系统软件包括你的外壳程序(shell)和文本编辑器、编译器和调试器、核心工具以及系统守护进程。这些组件完全基于内核和C库的系统软件。许多其他软件(如高级GUI应用程序)主要存在于更高层次,偶尔才会深入到低层。
2024-11-08 08:40:18
635
原创 【国产MCU系列】-深入理解GD32F470的位带(Bit-Banding)操作
为了减少“读 -改 -写 ”操作的次数 Cortex®-M4处理器提供了一个可以执行单原子比特操作的位带功能 。存储器映射包含了两个支持位带操作的区域。 其中一个是 SRAM区的最低 1MB范围,第二个是片内外设区的最低 1MB范围 。 这两个区域中的地址除了普通应用外 还有自己的 “位带别名区 ”。 位带别名区把每个比特扩展成一个 32位的字 。 当用户访问位带别名区时 就可以达到访问原始比特的目的。
2024-11-08 07:24:28
168
原创 【RK3588 Linux 5.x 内核编程】-GPIO输入(非中断方式)
在前面的文章中,详细介绍了Linux的GPIO内核子系统及其使驱动开发方式并实现了LED点亮。本文在该基础上,实现GPIO按键输入与LED控制。
2024-11-07 07:26:53
207
原创 【Python编程实例】-深入理解Python线程安全
Python 的线程允许你并行运行代码的某些部分,从而使代码更高效。然而,如果你在不了解线程安全的情况下引入线程,可能会遇到竞争条件等问题。你可以通过使用锁、信号量、事件、条件和屏障等工具来解决这些问题。
2024-11-06 09:48:55
243
原创 【RK3588 Linux 5.x 内核编程】-GPIO设备驱动与点亮LED
GPIO 是嵌入式 Linux 系统中最常用的外设之一。从 4.8 版本开始,Linux 内核引入了一个新的基于字符设备的用户空间 API,用于管理和控制 GPIO(通用输入/输出)。本文介绍了新的GPIO接口API基础知识以及一个简单的教程/示例来演示如何使用新的 API 来控制 GPIO。
2024-11-05 18:09:56
121
原创 【国产MCU系列】-GD32F4内存映射
ARM处理器是指由多家硅制造商生产的CPU的基本构建块(因此称为核心)的多个RISC架构家族和几个完整核心家族。在处理基于ARM的处理器时,可能会产生很多混淆,因为有许多不同的ARM架构修订版(如ARMv6、ATMv6-M、ARMv7-M、ARMv7-A、ARMv8-M等)和许多核心架构,这些架构又是基于某个ARM架构修订版的。为了清晰起见,例如,基于Cortex-M4核心的处理器是在ARMv7-M架构上设计的。
2024-11-04 16:57:33
1080
原创 【RK3588 Linux 5.x 内核编程】-设备驱动中的sysfs
sysfs是内核导出的虚拟文件系统,类似于/proc。sysfs中的文件包含有关设备和驱动程序的信息。sysfs中的一些文件甚至是可写的,用于配置和控制连接到系统的设备。sysfs始终安装在/sys上。
2024-11-03 08:50:13
485
原创 【国产MCU系列】-GD32F4开发环境搭建(基于Embedded Builder)
GD32F4系列MCU采用Arm® Cortex®-M4内核,处理器主频高达240MHz,可支持算法复杂度更高的嵌入式应用,具备更快速的实时处理能力,并拥有业界领先的大容量存储优势。
2024-11-02 09:22:29
219
原创 【RK3588 Linux 5.x 内核编程】-等待队列(WaitQueue)
本文将详细介绍如果在Linux内核驱动中使用等待队列(WaitQueue)。
2024-11-01 08:08:07
499
原创 【电路笔记】-单稳态运算放大器
单稳态电路只是一种具有稳定的单一状态的电路。 在大多数情况下,这采用电路的形式,该电路接受任意长度的触发脉冲并输出设定长度的脉冲。 输出脉冲长度完全由组成电路的元件决定,而不是由输入脉冲决定。 例如,如果我们有一个时间常数为 1ms 的单稳态电路,那么无论是 1us 脉冲还是 0.1ms 脉冲触发它都没关系,输出脉冲将始终为 1ms 长。 可以使用许多不同的组件来制作这样的电路,例如晶体管、555 定时器和数字逻辑门,但在本教程中,我们将重点关注单稳态运算放大器电路。
2024-10-31 06:39:32
1029
原创 【STM32 Blue Pill编程实例】-4位7段数码管使用
在本文中,我们将介绍如何将 STM32 Blue Pill开发板与 4 位 7 段数码管连接,并在 STM32CubeIDE 中对其进行编程。 在文章中首先将介绍 4 位 7 段数码管及其与 STM32 Blue Pill 开发板的连接,然后继续在 STM32CubeIDE 中创建和构建计数器显示器。 计数器将在 4 位七段数码管上连续显示 0-9999 的数字。
2024-10-30 09:04:41
281
原创 【STM32 Blue Pill编程实例】-OLED显示DS18B20传感器数据
在本文中,我们将介绍如何将 DS18B20 温度传感器与 STM32 Blue Pill 开发板连接,并使用 HAL 库在 STM32CubeIDE 中对其进行编程。在文章中,我们首先将简要介绍 DS18B20 传感器,然后将其与 STM32 连接并使用 STMCube IDE 对其进行编程以进行温度测量。 为了进行演示,我们将 SSD1306 OLED 与 STM32 Blue Pill 开发板连接,以在 OLED 上显示传感器数据。
2024-10-28 08:01:18
260
原创 【STM32 Blue Pill编程实例】-OLED显示HC-SR04超声波测距结果
在本文中,我们将 HC-SR04 超声波传感器与 STM32 Blue Pill 开发板结合使用,并使用 STM32CubeIDE 和 HAL 库对其进行编程,并将HC-SR04的测量结果在OLED中显示。
2024-10-28 07:56:06
70
原创 【RK3588 Linux 5.x 内核编程】-字符设备文件与操作(IOCTL)
IOCTL( Input and Output Control,输入/输出控制)。这个系统调用在大多数驱动程序类别中可用。IOCTL主要用于处理内核默认没有系统调用的设备的某些特定操作。比如,应用程序正在从CD驱动器中弹出媒体、更改串行端口的波特率、调整音量、读取或写入设备寄存器等。我们的设备驱动程序中已经具有写入和读取功能。但这还不足以应对所有情况。
2024-10-27 08:56:04
437
1
原创 【STM32 Blue Pill编程实例】-I2C主从机通信(中断、DMA)
在本文中,我们将介绍 STM32 I2C 通信模式、硬件概述和功能、I2C 中断、处理主设备和从设备的 I2C 事务,包括针对不同 I2C 模式的 I2C HAL API。
2024-10-27 08:53:33
171
原创 【RK3588 Linux 5.x 内核编程】-字符设备文件操作实现
上一篇文章中,我们成功实现了字符设备文件的操作,但是在该实例中,各操作函数并没有具体实现,本文在此基础上,进一步实现文件操作函数。
2024-10-26 08:46:23
332
原创 【STM32 Blue Pill编程实例】-直接内存访问 (DMA)使用
在本文中,我们将介绍STM32微控制器的DMA直接存储器访问控制器。 在文章中我们将讨论 DMA 单元的硬件和功能、如何配置和使用它及其应用。
2024-10-25 09:28:57
141
原创 【RK3588 Linux 5.x 内核编程】-字符设备文件操作基础
在前面的文章中,介绍了设备的主要、次要编号和设备文件,应用程序如果需要与硬件通信,这就涉及到对设备文件的打开、读、写、关闭等等操作。毕竟,在Linux中,一切旨为文件。本文将重点介绍这些操作。
2024-10-24 20:23:45
125
原创 【STM32 Blue Pill编程实例】-控制步进电机(ULN2003+28BYJ-48)
在本文中,我们将介使用 STM32Cube IDE 使用 ULN2003 电机驱动器来控制28BYJ-48步进电机。在文章中,首先简单介绍一下28BYJ-48步进电机和ULN2003步进电机驱动模块。 然后,我们将使用 UNL2003 驱动器将步进电机与STM32 Blue Pill 开发板连接起来,并在 STM32Cube IDE 中对其进行编程以演示电机的运动。
2024-10-23 19:20:33
244
原创 【RK3588 Linux 5.x 内核编程】-字符设备文件与创建
设备文件不是普通的文件,但从程序的角度来看,它们看起来像文件:你可以从它们中读取、向它们写入、对它们进行mmap()等等。当您访问这样的设备文件时,内核会识别I/O请求并将其传递给设备驱动程序,设备驱动程序执行一些操作,例如从串行端口读取数据或向硬件发送数据。
2024-10-22 13:41:33
197
Blynk服务器和客户端 App
2023-12-09
ArduinoLibraryforProteusV2.0.zip
2021-10-18
OpenCV4.x图像处理实例-社交距离检测Caffe模型
2020-11-17
Mastering Go Web Services
2017-11-07
Pro Processing for Images and Computer Vision with OpenCV
2017-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅