- 博客(56)
- 收藏
- 关注
原创 一篇文章教会你HC-SR04超声波传感器测距,附STM32代码示例
【代码】一篇文章教会你HC-SR04超声波传感器测距,附STM32代码示例。
2024-11-02 23:57:35 1312 1
原创 一篇文章教会你I2C通信(软件I2C和硬件I2C)以读取MPU6050为例,附STM32代码示例
I2C(Inter-Integrated Circuit)是一种通用的数字通信协议,主要用于微控制器和各种外围设备之间的通信。(1)基本概念:I2C是一种多主机、两线制、低速串行通信总线,使用两条线路:串行数据线(SDA)和串行时钟线(SCL)进行双向传输。(2)特点:两线制总线:I2C仅使用两条线——串行数据线(SDA)和串行时钟线(SCL)进行通信,有效降低了连接复杂性。多主多从设备支持:I2C支持多个主设备和多个从设备连接到同一总线上。每个设备都有唯一的地址。
2024-11-01 19:40:35 1222
原创 一篇文章教会你红外发送模块发送红外信号,附STM32代码示例
NEC协议是一种广泛使用的红外通信协议,它由NEC公司(现在称为Renesas)开发。这种协议也被称为日本格式,尽管它在全球范围内都有应用。NEC协议被用于多种设备,包括VCR、电视、投影仪等,其中NEC公司制造了遥控器的IC芯片。红外信号的载波频率为38kHz,这是红外通信中常用的频率,可以确保信号的传输效率和抗干扰能力。首先配置定时器3,在配置里面TIM默认的内部时钟为72MHz,设置预分频器为71,那么TIM的时钟频率为1MHz,也就是计数频率1us,计数周期修改成了25,也就是26个周期(0也算一
2024-10-27 23:37:05 973 9
原创 一篇文章教会你红外接收模块接收红外遥控信号,附STM32代码示例
红外线通信是一种利用红外线传输信息的技术。红外线是电磁波谱中可见光与微波之间的部分,在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。在通信中,红外线通常采用38kHz的调制频率,这是一种在自然光中很少出现的频率,因此可以很好地与环境光区分开来,减少干扰。 NEC协议是红外通信中非常流行的一种协议,广泛应用于各种消费电子产品,如电视、投影仪和许多迷你遥控器。虽然像格力和美的这样的空调制造商可能使用不同的红外协议,但红外通信的基本原理是相同的。一旦你理解了红外光的传输方式和如何解析N
2024-10-07 23:50:35 2201
原创 一篇文章教会你DHT11读取温湿度,附STM32代码示例
DHT11是一种常用的单总线数字温湿度传感器,它通过一条数据线与微控制器通信。这种单总线的设计意味着所有的数据交换和控制都通过这一根线完成。在这种通信协议中,设备通过一个漏极开路或三态端口连接到数据线,这样当设备不发送数据时,它能够释放总线,允许其他设备使用总线。为了确保在没有数据传输时总线为高电平状态,单总线通常需要外接一个约4.7kΩ的上拉电阻。由于DHT11采用主从结构,只有主机(微控制器)发起请求时,从机(DHT11)才会响应。因此,主机访问DHT11时必须严格遵守单总线通信序列。如果通信序列出
2024-10-06 13:44:20 1875
原创 一篇文章教会你DS18B20温度传感器读取温度,附STM32代码示例
使用DS18B20温度传感器读取温度,附STM32代码示例。读/写时隙:总线主在写时隙向DS18B20写入数据,在读时隙从DS18B20读取数据。在单总线上每个时隙传输一位数据。写入时隙:有两种写时隙:写1时隙和写0时隙。总线主用一个写1时隙向DS18B20写入逻辑1,用一个写0时隙向DS18B20写入逻辑0。所有写入时间槽必须至少为60 μ s,每个写入槽之间的恢复时间至少为1 μ s。两种类型的写时隙都是由主站将单总线拉低发起的。为了生成写1时间槽,在拉低单线总线后,总线主必须在15 μ
2024-10-05 15:52:12 2472
原创 FreeRTOS保姆级教程(以STM32为例)—任务创建和任务控制API说明
是 FreeRTOS 提供的一个函数,它用于强制一个正在延迟或阻塞状态的任务立即离开阻塞状态,并进入就绪状态。是 FreeRTOS 提供的一个函数,它允许任务以固定的频率执行,而不是简单地延迟一定的时间。是 FreeRTOS 提供的一个函数,它允许从中断服务例程(ISR)中安全地获取任务的基础优先级。是 FreeRTOS 提供的一个函数,它允许从中断服务例程(ISR)中安全地获取任务的优先级。是 FreeRTOS 提供的一个函数,它允许从中断服务例程(ISR)中恢复一个被挂起的任务。
2024-09-22 13:09:13 939
原创 FreeRTOS保姆级教程(以STM32为例)—任务和协程及代码示例
在FreeRTOS操作系统中,任务(Task)和协程(Coroutine)是两种不同的并发执行单位,它们各自有不同的特点和适用场景。 在选择使用任务还是协程时,需要考虑应用程序的具体需求。如果应用程序对RAM资源有严格的限制,且任务之间的同步和通信需求较低,协程可能是一个合适的选择。然而,如果应用程序需要复杂的同步机制、优先级调度和抢占式行为,任务可能是更好的选择。 在实际应用中,任务是FreeRTOS中更常用的并发执行单位,而协程由于其限制和RTOS的发展,使用较少。在设计RT
2024-09-21 16:41:49 1911
原创 opencv-python学习笔记11-视频处理
拉普拉斯金字塔的每一层都是通过高斯金字塔相邻两层的差值来构建的,这样可以保留图像在不同尺度下的细节和边缘信息。图像金字塔通过递归地对图像进行降采样(subsampling)来构建,每一层都是上一层图像的下采样版本,同时保持图像的宽高比不变。在向上取样过程中,图像的尺寸变大,但因为原始图像中没有足够的信息来填充新增的像素,所以可能会引入模糊或锯齿效应。在图像处理中,向上取样(Upsampling)和向下取样(Downsampling)是两种基本的图像缩放技术,它们分别用于增加和减少图像的分辨率。
2024-09-17 19:06:08 1881
原创 opencv-python学习笔记9-图像分割
图像分割是计算机视觉中的一个重要步骤,其基本目标是将图像划分为若干个具有特定特征或意义的区域。每个区域内部的像素共享相似的属性,如颜色、纹理、亮度或深度。图像分割可以基于灰度、彩色、空间纹理和几何形状等特征进行划分,并使这些特征在同一区域内表现出一致性或相似性,而在不同区域间呈现出差异性。技术现状:传统图像分割技术:传统的图像分割方法主要包括基于阈值的方法、边缘检测方法、区域生长方法、聚类方法以及图论方法等。例如,基于阈值的方法通过设定一个或多个阈值来区分不同的像素值,从而实现二值化分割;
2024-09-13 20:56:55 1665
原创 Python3 学习笔记6-os 模块、错误和异常、面向对象编程、类的专有方法、命名空间和作用域、Python 3的标准库
【代码】Python3 学习笔记6-os 模块、错误和异常、面向对象编程、类的专有方法、命名空间和作用域、Python 3的标准库。
2024-09-12 21:50:28 1197
原创 opencv-python学习笔记8-图像边缘检测
在OpenCV中,图像边缘检测是一个重要的图像处理技术,它可以帮助识别图像中的物体边界。降噪:边缘检测容易受到图像噪声的影响,因此通常首先使用高斯滤波器对图像进行平滑处理以减少噪声。求图像的强度梯度:通过应用Sobel算子或其他梯度算子来计算图像的梯度。这通常涉及到计算图像在水平和垂直方向的一阶导数。非极大值抑制:在这一步中,算法会检查图像中的每个像素,并仅保留梯度方向上局部最大值的像素,这样可以细化边缘。双阈值:使用两个阈值来确定强边缘和弱边缘。
2024-09-12 21:43:49 1475
原创 opencv-python学习笔记6- 图像平滑
图像平滑是图像处理中的一项基本技术,用于减少图像噪声或细节,从而使图像看起来更加平滑。图像平滑可以通过线性滤波和非线性滤波两种主要方法实现。图像平滑通常指的是通过滤波器来处理图像,目的是降低噪声或细节,使得图像看起来更加平滑。平滑操作通常涉及到卷积运算,即用一个卷积核(或称滤波器、模板)在图像上滑动,并用核覆盖的图像区域的像素值与核中的权重相乘后求和,得到的结果用来替换中心像素的值。(1)线性滤波:线性滤波是图像平滑中的一种方法,其特点是输出是输入的线性函数。线性滤波器的输出像素值是输入像素值的加
2024-09-10 19:33:53 1546
原创 Python3 学习笔记5-推导式、迭代器和生成器、函数、装饰器、数据结构、模块、输入输出和文件操作方法
【代码】Python3 学习笔记5-推导式、迭代器和生成器、函数、装饰器、数据结构、模块、输入输出和文件操作方法。
2024-09-10 16:15:07 1481
原创 opencv-python学习笔记3-数组矩阵
NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。它提供了一个强大的N维数组对象ndarray和用于操作这些数组的工具和函数。NumPy是许多其他科学计算和数据分析库(如SciPy、Pandas、Matplotlib、Scikit-learn等)的基础。
2024-09-08 14:44:14 1012
原创 Python3 学习笔记4-列表、元组、字典、集合、条件控制和循环语句
在Python中,序列是一种基础且强大的数据结构,用于存储有序的数据集合 序列的基本概念:Python中的序列类型:列表(list)的特点:列表的操作:内置方法和函数:列表的创建:列表的灵活性:列表的应用:基本索引 负数索引 切片 遍历列表 访问列表长度 (3)列表更新: 在Python中,列表是可变的数据结构,这意味着你可以在列表中添加、删除或更改元素。a.修改列表中的元素b.使用 方法添加元素c.使用 方法添加多个元
2024-09-07 20:56:41 1432
原创 opencv-python学习笔记1-计算机视觉概述
计算机视觉是一门涉及从图像或多维数据中提取、处理和理解信息的科学,它旨在使计算机能够像人类一样“看”和理解视觉世界。计算机视觉技术广泛应用于图像识别、视频分析、自动驾驶、机器人导航、医疗成像、增强现实等领域。
2024-09-06 21:00:11 1115
原创 Python3 学习笔记3-数据转换、注释、运算符、数字(Number)和字符串
在Python中,数据类型转换是编程中常见的操作,它允许你将数据从一种类型转换为另一种类型。这种转换可以是隐式的,也可以是显式的。 隐式类型转换,也称为自动类型转换,是指Python解释器在执行某些操作时自动进行的数据类型转换。这种转换通常发生在不同类型的数据进行数学运算时。Python会根据需要自动将数据类型转换为更通用的类型,以确保操作的有效性和数据的完整性。(2)显式类型转换: 显式类型转换是指程序员明确指定要将数据转换为哪种类型。这通常通过调用特定的类型转换函数
2024-09-06 21:00:03 968
原创 Python3 学习笔记2-基本数据类型
在 Python 中,变量的声明和赋值是紧密联系在一起的,但与一些静态类型语言(如 C 或 Java)不同,Python 不需要显式声明变量的类型。Python 是一种动态类型语言,这意味着变量的类型在运行时会自动确定,并且可以在程序执行过程中改变。示例: 每次使用等号()时,都是在创建或修改一个变量,并将其与右侧的值关联起来。Python 解释器根据赋值的右侧对象自动确定变量的类型。 值得注意的是,虽然变量本身没有类型,但赋给变量的值(对象)确实有类型。在 Python 中,一切都是对象,包括数
2024-09-05 08:46:08 969
原创 opencv学习笔记22-opencv图形变换(旋转、缩放、仿射、投影)
【代码】opencv学习笔记22-opencv图形变换(旋转、缩放、仿射、投影)
2024-09-02 00:13:32 1076
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人