自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 openmv学习笔记(24电赛备赛笔记)

openmv一种小型,可编程机器视觉摄像头,设计应用嵌入式应用和计算边缘,是图传模块,或者认为是一种,具有图像处理功能的单片机,提供多种接口(I2C SPI UART CAN ADC DAC )OpenMV 使用 MicroPython 作为编程语言。同时是一个开源的机器视觉项目,主要由 OpenMV 公司维护。它提供了硬件(OpenMV Cam 开发板)和软件(OpenMV IDE 和固件)解决方案,用户可以在此基础上进行二次开发和定制。

2024-07-22 21:21:31 517

原创 MSP430单片机快速上手CSS开发环境(24电赛省赛)

前言:3天学完MSP430单片机,为了对应电赛,同时写下这篇笔记,用来熟悉对应开发环境,看的懂对应代码。

2024-07-22 12:50:08 599

原创 STM32使用SPI向W25Q64存储信息(HAL库)

然后对已经写过数据的区域进行写擦除,这里W25Q64闪存模块以及类似的模块中,写使能(Write Enbale)是一个必要的步奏,是为了。全双工在时钟脉冲周期的每一个周期内,每当主设备同时发送一个字节的同时,会接受从设备接受一个字节数据,SPI全双工最大的特点就是。0x02擦除扇区,首地址,程序中将0x02,作为数据帧发送出去,就能完成对W25Q64的扇区擦除。,这些在数据手册里面都能找到,图放在下面,找到之后,在发送数据帧里面,加入就能完成对应的功能。拉低对应从机的片选信号,代表选中这个从机。

2024-07-19 18:36:57 347

原创 博客最细 STM32CubeProgrammer 软件使用教程 二(学不会举报我)

读flashRAM读写保护程序加密有什么用前言:编写不易,仅供学习,参考,请勿转载前言:本篇教程是 STM32CubeProgrammer 软件使用教程二,通过本篇你可以学习到,使用STM32CubeProgrammer读取 flash RAM开启读写保护程序加密的功能,在看本篇前建议先看教程一。#读flashRAM读写保护程序加密有什么用为什么要读flash RAM?

2024-07-19 18:36:36 1040

原创 博客最细 STM32CubeProgrammer 使用教程(学不会来找我)

本篇主要是介绍STM32CubeProgrammer 烧录软件的使用过程,随着ST开发生态已经完成闭环,(STM32CubleMX配置代码 STM32IDE写代码 STM32CubeProgrammer烧录代码)随着STMSTM32CubleMX 这个软件将ElipeseIDE开发环境删除,或许有一天会限制下载烧录软件,作为ST生态的一环,这个软件以后可能会用的越来越多,同时附带软件下载连接,在文章末尾,个人观点哈。

2024-07-17 17:20:01 1441

原创 为什么STM32F103c8t6最小系统板的usb只能用来供电详解

市面上所有的ST F103的最小系统板,都没有办法通过 micro usb来下载程序,不知道大家好不好奇,为什么?为什么国产的对标F1系列的最小系统都能通过USB进行下载程序。为什么就ST的F1下载程序不行?只能通过usb进行供电,或者作为通信接口。Device Firmware Upgrade 缩写 DFU 翻译:设备固件升级 ,这种协议是一种用在嵌入式系统中,通过USB接口进行固件升级的标准协议。

2024-07-17 17:19:32 570

原创 OLED多级菜单基础知识

到这里经介绍完了,实时的基础,接下来将其进行混合应用,如果有的小伙伴还是不清楚可以,找更加基础的教程,多练练,接下来开始进行混合应用率练习。而不是数据地址,当完成声明之后,可以通过函数指针,调用函数,固定声明格式如下所示。这里数组里面,存放的是结构体定义的组合数据类型。为已存在的数据类型(基本数据类型,结构体,联合体,枚举)(结构体类型),在内存中连续存储,且通过下标访问。,进行混着,只混合基本数据类型,较为简单。,不仅仅只有基本数据类型,同时可以,函数指针,指针的一种,指向的是。,这个关键字的作用在于,

2024-07-15 16:49:23 450

原创 STM32 不同时钟频率有什么不同的影响

单片机本质上,是一个复杂的时序电路,而时序电路的行为依赖于,时钟信号来控制状态的变化,和数据的流动,如果没有时钟信号,单片机内部的时序逻辑将无法工作,整个系统将失去还有控制。可能有的小伙伴单纯的认为,不同的时钟频率就是时钟频率不同,时钟频率意味着不同的执行速度,意味着相同单片机,不同的性能,同时部分外设要求限制相关频率,下面讲。最终的代码都会转化为指令,去由CPU去执行,这些指令的执行需要时钟周期,不同时钟周期在不同频率下所用时间不同,具体时间受时钟频率,内核架构不同收到影响,#时钟频率的不同意味着什么。

2024-07-15 11:18:15 488

原创 0.96寸OLED屏幕显示动画教程

然后声明之后,每个数组对应的是那个动画的每一帧啊,刚好的10帧,也就是里面显示电量的各自也就是10格子,同时按照前面讲的理论说法,要对,这里每一幅图片,按照一定频率进行刷新显示对不对,同时这个时间间隔频率不能太长,不然就成了,ppt幻灯片了对不对。这里调用可以封装为函数,或者其他改进反之,原谅笔者写的烂,这里刷新时间是按照 1s 进行刷新的,如果要更为流程那么需要的图片也就更多,同时刷新频率也就越高,这个就是帧率。综上所述,需要先对,动画中的每一帧图片使用,软件进行取模,然后,写入程序进行刷新显示。

2024-07-14 15:18:13 384

原创 嵌入式应用开发之模块驱动移植教程

这个文件通常用来放置模块的驱动,这里有每个模块对应的 源文件(.c) 头文件(.h),这些文件里面放置着模块的驱动函数,当然有的工程模版不这样命名,命名虽然不一样,大家要有这么的一个概念。每个模块的驱动,在hardware文件夹下都是,小的文件夹,每个文件夹的路径都要被引入,如果没有引入驱动文件目录就会进行报错,如下图所示。,同系列或者对标系列的芯片可以移植,不同系列芯片,有着不同的寄存器,不同的配置,不能进行相互移植驱动。这种模块移植,是有缺陷的,讲个比方,就像连连看,找相同,#移植外设驱动的过程。

2024-07-13 16:42:57 503

原创 嵌入式开发过程中,常见报错以及解决方法

翻译:文件的最后一行结束时没有新行解决方法:定位到,提示报错的 .h 文件 报错行 ,加上一个新行。

2024-07-12 11:00:30 533

原创 嵌入式应用开发之代码整洁之道二

大量使用宏定义,方便移植程序,提升程序运行速度,如果使用宏定义写的程序,移植的时候,一般只需要改头文件里面的宏定义就能,进行正常运行工作,同样一段程序,不写宏定义,那么可能每个参数都要从头改到尾,会造成时间上的浪费。除此之外,宏定义是预处理指令,这种指令的执行,实在程序执行之前,在程序编译之前,大量使用这种指令,会提升程序运行速度,这种指令在程序执行前就已经执行过了,能提升程序整体运行速度。,进行调用,重复的代码,重复写不封装,浪费代码行,浪费阅读时间,封装之后,一行代码,能解决的事情,

2024-07-12 10:51:13 532

原创 嵌入式应用开发之代码整洁之道

前言:本系列教程旨在如何将自己的代码写的整洁,同时也希望小伙伴们懂如何把代码写脏,以备不时之需,同时本系列参考 正点原子 , C++代码整洁之道,编写可读的代码艺术。,有的小伙伴上面缩进4跟下面8个,随便缩进,反正不会报错,看着确实难受,如果使用文本方式打开,驱动文件,可以发现是跟在KEIL5中阅读的缩进大小是不一样的。注释在程序中,并不是越多越好的,大量的注释无关紧要的地方,会造成浪费时间,去阅读这些注释,占用屏幕空间,这些注释相对来说是没有价值的。使用TAB进行缩进的时候,这个键的值可能是。

2024-07-10 21:37:00 775

原创 一篇教会你 位置式PID 在写码中的应用。

由于Ki算法,是对误差的累加算法,需要对其进行限制幅,这里需要两个参数 Ki_Max Ki*integral 因为是位置式PID 需要对Ki进行限幅度 ,如果是增量式PID 需要对输出限幅,同时Ki也就是积分是累加的,是用。,前面已经声明过了,到了这里,已经讲解了,位置式PID,需要用到的参数,如果像上面一个一个声明,太麻烦了,直接定义结构体,更好一点。由于 D算法(Kd),是两次误差的值,如果差值过大,Kd也就越大对Kp的抑制也就越大,需要有三个参数,上次误差。欢迎指正,希望对你,有所帮助!

2024-07-10 13:44:08 1199

原创 嵌入式开发SPI基本介绍与应用

前言:本篇笔记参考嘉立创的开发文档,连接放在最后。#SPI通信协议#SPI基础概念Serial Peripheral Interface 缩写SPI翻译:串行外设接口 同步串行通信协议(数据线上的数据帧是bit为单位传输,一条传输数据线),的一种 高速 全双工(A B 双方可以同时发送信息 像vx聊天软件) 同步的通信总线,支持一主多从 (一个主设备多个从设备但这种通信方式通常用在短距离通信。在通信的过程中,主设备是通信的发起方和控制方,从设备只能接受。

2024-07-07 20:09:22 764

原创 STMF4 硬件IIC(天空星开发板)

下面只介绍不同的部分。使用宏定义,去写代码,这种函数是能够提升程序的执行速度,因为宏定义是预处理指令,在程序执行前,开始执行的,如果是将函数在次封装在调用,这种程序执行速度是比不上,宏定义。,硬件IIC效率远高于软件IIC, STMF4VET6上带有3个硬件IIC,允许与外部IIC接口进行通信,STMF4的硬件IIC使用特定的引脚复位,来进行数据和时钟信号的传输。来传输数据还有时序信号,达到IIC通信的效果目的,软件IIC通信好处是,在MCU内部没有集成硬件IIC电路的时候,可以使用软件IIC通信,

2024-07-06 18:47:57 1198

原创 opencv概念以及安装方法

图像由RGB三种颜色组成,red green blue 这三种颜色相互组合能形成不的颜色,每一个像素需要由R G B 三种颜色进行表示,M N分别代表图像的行和列,三个M*N的矩阵代表每个像素在R G B 三种颜色上的分量。图像是人类视觉的基础,是自然景物的客观反映,是人类认识世界和人类本身的重要的源泉,图像分为图和像 ,图是物体反射或投射光的分布,像是人的视觉系统所接受的图在人脑中形成的印象或者认识。到这里安装完成之后,在命令行,导入库验证一下库,是否安装成功,代码如下。

2024-07-05 19:12:43 506

原创 内存管理(RTOS)

如果程序不需要删除,堆内存对象可以使用这个文件,对堆内存进行管理,如果在一些严格的系统里面,如果不允许使用动态内存(就是不允许分配内存,使用过后回收内存),就可以使用这个函数,进行分配内存,因为这个文件不回收内存。A在创建任务之前整个Heap都是空着的,B是分配一个任务之后heap的使用情况,C是3个任务之后heap的使用情况,这个时候如果有任务结束,这些空间是不会被收回的。,如果内存的地址不连续,可以使用 heap_5.c 如果内存是分开的不连续的,在使用。

2024-07-05 14:48:13 1236

原创 STMF4学习笔记RTC(天空星)

RTC由晶振还有计数器组成,晶振产生一个固定频率的信号,计数器对这些信号进行计数,RTC本质上就是一个1S计数器,由此换算出时间,除此之外RTC是一个独立的BCD定时器/计数器,F4的RTC提供一个日历时钟,两个闹钟中断,一个可编程唤醒标志。,如果选择VDD进行供电,在掉电之后,数据不会进行保存,如果使用BAT,也就是纽扣电池进行供电,数据将备份在。中,系统复位,或者系统从待机模式唤醒时,RTC设置与时钟都保持不变。RTC可以表示时间日期,他可以跟踪年,月,日,分钟和秒的信息。RTC电源供电选择有。

2024-07-03 21:09:23 496

原创 堆与栈的概念(RTOS)

堆在RTOS的概念本文所指的堆与栈并不是数据结构中,的堆与栈,实时操作系统(RTOS)中,堆(Heap)是一个动态内存分配区域,用于存储程序运行过程中大小未知或可变的数据结构。堆内存不像栈内存那样由操作系统自动管理,它是由程序员申请和释放的。用户可以根据需要请求一段连续的内存空间,并在程序执行过程中随着数据的变化而增长或减小。堆与栈经常混着用,而栈是RTOS的基础,所为堆就是一块内存,我们可以管理内存,从内存中使用一部分,用完之后在把他释放回去。#相关代码表示代码里定义了。

2024-07-03 11:43:17 1095

原创 嵌入式应用开发屏幕教程8080并口通信

如果是写,RD为高电平,WR负责控制,如果是读,WR为高电平,RD负责控制,无论是读写命令还是读写数据CS片选信号都要被拉低,结束之后拉高表示过程结束,数据被写在D[0:15]里面(8位找的图是16位),在WR的上升沿将数据读出,或者在RD的上升沿将数据读出。这个图是写时序的图,这里RD全程为高禁止写,在WR的上升边沿,将D[0,7]里面的数据写入驱动芯片,CS为低,选中,RS为高写数据,最后数据传输完成 ,CS拉高,结束数据传输。DC:命令数据线(0读写命令/1读写数据)欢迎指正,希望对你有所帮助!

2024-06-28 20:54:44 966

原创 嵌入式应用开发屏幕教程

这种屏幕常用于,电子表,家电,主要特征是,在屏幕时间的组成像数码管一样,数字由一段一段的组成,这种屏幕价格比较便宜,工作在高温低温,的耐受性很好,寿命较长,比较省电,一般用于,工业,家电,儿童电子表。点阵屏幕由每个点组成,每个特定位置的点,通过发光或者不发光,就组成了字,或者任意需要的字符,也是使用屏幕驱动芯片,驱动芯片一般是在屏幕后面 ,去驱动屏幕。,偏光板的作用是用来发射偏振光,通过电场可以控制液晶从而改变入光的偏振,如果没有上电,背光在液晶的作用下,没有办法显示,上电之后控制液晶,

2024-06-28 15:44:03 934

原创 ARM芯片架构(RTOS)

前言:笔记韦东山老师的rtos教程,连接放在最后。

2024-06-27 18:09:43 1055 1

原创 裸机与操做系统区别(RTOS)

这里即使将变量赋值提前,但是还是会出现打印出错的情况,语句1的执行可以分为3个步奏,1从内存读取变量的值放入寄存器2修改寄存器的值让变量减1 3把寄存器的值写到内存变量上面如果执行12切换到B任务,此时变量还是1,B任务执行进行printf打印一半进行切换,A任务会从打断地方执行,也能进入if函数,这个时候打印出来也会是混乱的值。在操作系统中,同时执行多个任务的时候,如果多任务访问同一资源,就会发生互斥,这个时候会出现数据混乱,有可能出现死锁,可以通过软件加入变量,互斥使用系统资源。

2024-06-26 21:22:11 968

原创 带你学习PID算法2

PID讲解。

2024-06-26 15:48:50 1420

原创 带你学习PID控制算法

(ek-ek-1)-某种程度上就是代表着,系统对P算法调节的阻力响应程度,前文提到e代表着误差,(ek-ek-1)就代表着前后误差绝对值,当ek越大 ek-1越小,就代表了,此时P算法作用力,很大,也就是此时过度响应,此时(ek-ek-1)也就变大,提供的阻力也就越大,反之阻力也就越小。这里网站实验加入KD之后,发现小球在接近目标点之后,就没有发生移动了,也就验证了D算法对P算法提供的阻力,这里如果只用D算法是没有用的,D算法是对P算法提供阻力,P算法是提供一个调节的力。

2024-06-25 12:04:50 1264

原创 IIC学习笔记(立创STMF4开发板)

个人学习笔记,参考文献,链接最后!!!

2024-06-24 18:37:20 1384

原创 嵌入式应用开发ADC学习笔记(立创STMF4开发板)

目录#ADC#ADC学习相关涉及概念介绍数字信号(Digital Signal):数字信号用最为常见的二进制数来表示的信号,也就是 0 1 ,数字信号就是 0 和1 组成的信号,取值是有限制的变化范围也是有限制的,这种信号可以由ADC连续的采样转化得到;模拟信号(Analog Signal):模拟信号不像数字信号,其信号可以随意变化,其取值没有受限,在一个范围内取值,是随意地,这是二者的差别,通常由传感器采样得到,这种信号。

2024-06-23 13:33:59 1145

原创 DMA学习笔记(天空星stmf4开发板)

中断法传输数据:将数据传输的指令,写在中断响应函数里面,当需要传输数据,触发中断,如果传输大量数据的时候,会出现一个问题,单片机中断,是一瞬间的事情,在响应中断的时候,CPU会只执行中断响应函数,while()循环里面的函数就不行执行,这就会造成,轮询法传输数据:在main()函数的while()循环里面,执行检测相关标志位,的语句判断是否符合条件,满足条件进行传输数据,如果没有上rtos操作系统,又传输大量数据,这个时候,也会出现 响应延迟,因为mcu 在没有操作系统的情况下,

2024-06-22 17:54:06 1162

原创 #带你读懂嵌入式应用开发 stm_xxxx.h驱动头文件(官方提供)

必备知识普及前言:写这篇,是记录,同时也是为了让更多刚入门的,小伙伴,更好的读懂头文件,读懂.看懂STM_xxxx.h,驱动头文件时很重要的。#C语言预处理指令。

2024-06-20 20:57:51 991

原创 学习笔记STMF4 TIMER定时器(使用开发板立创天空星STMF4)

这个系列所有笔记用来记录,笔者学习过程中,产生的疑惑,个人的理解,同时掺杂着个人理解,希望对各位读者姥爷有帮助,参考文章连接在最后。

2024-06-19 23:25:45 988

原创 电阻介绍与相关电路分析

在这里,我们需要根据LED的数据手册确定电阻的数值选型,连接放在最后拿N11-5LED类型距离,耐压在2.1~2.3电压之间 电流限制在20ma,超过烧毁,从数据手册读取到了LED,需要工作的环境,那么电阻就要承担3V的分压,然后电流是20ma。在这个电路中,GPIOA0引脚,使用ADC模式,input capture模式 也就是输入捕获,求在引脚端口出的电压在多少,带入公式,计算出,R2分压在 3.3V, 那么GPIOA0这个端口采样电压在 1.6V。上面这几个电路,是分析电阻阻值的常见例子。

2024-06-14 21:23:08 470

原创 C语言指针介绍加练习

16位平台就是2位,如果在32位平台,地址就是4个字节,如果实在64位平台,地址就是8个字节(1Byte = 8bit),Int 类型 4Byte char 类型 1Byte 这个是变量在内存中,分配的地址大小,在内存中一个Byte一个地址,即Int类型有4个地址 char类型有一个地址,而指针指向的是,变量类型地址的首地址。指针类型不应该随便定义,在定义指针时,要进行指针初始化,没有进行指针初始化的指针是野指针,这种指针的地址是未知的。即指针++与--操作 加 | 减的是指针取地址变量类型的长度。

2024-06-12 19:54:16 446

原创 立创天空星STMF4学习笔记,中断EXTI

Extern Interrupt 缩写 EXTI 中文名称 外部中断 是芯片片上外设的一种资源之一,通常用于处理 ,相应对应的事件发生,当检测到外部事件发生,会调用对应的中断响应函数进行处理,当在配置中断的时候,通常会配置,抢占优先级,子优先级 ,这两个决定了,中断执行的先后顺序,那么中断,跟普通指令函数,是中断先执行,由于中断的优先级,比普通指令高,在执行中断的时候,是停止执行普通指令的,,如果,在hardware文件加下面,编写 EXTI.c EXTI.h,放在while循环里面去调用,

2024-06-05 18:38:45 1069

原创 STMF4STMF4立创天空星相关学习笔记 button/

按键为什么要进行消除抖动,如果没有消除抖动会怎么样#相关声明,本系列学习文档,用于记录学习过程中,解决疑问的过程,参考文档,链接在文章末尾在日常使用中,或者pcb设计中,常用按键类型有 贴片,直插 ,1*4p ,1*2p(也就是2个引脚和4个引脚的意思),可以说按键是最常用的,基本外设之一了。

2024-06-03 17:24:38 1114

原创 立创天空星STMF4学习笔记,USART RS232 RS485相关理解

为了写,这一篇文章笔者,参考了一些视频,文档,地址放最后,大家可以去看看。#USART为什么只能进行短距离通信,一般只在1M之内进行同行#USART单片机最为常用的一种通信方式之一,一般用于点对点通信,不能进行一主多从,进行相关通信,相关电平取值范围如下。 高电平取值范围 5~2.4V 1 低电平取值范围 0.4~0V 0笔者,使用这

2024-06-02 12:26:50 1077

原创 STMF4立创天空星相关学习笔记 USART

接线方式对不对,RX应该是软件上拉高电平,为了方式有电路上的噪声对不对,rx 跟 tx 连接的对不对,如果USART闲置的时候 那么RX应该是高电平对不对,如果TX是进行下拉,二者相连,对RX电压会不会有影响,所以统一上拉,避免不必要的麻烦,已上个人理解,初次之外,笔者,自己用电压表,测了USB转TTl这个 TX RX电压都是4.9V上下浮动,近似5V,所以至此,应该对TX在软件中进行上拉。这两个标记,是相反的,ST为啥不搞的一样,好记一点,至此,第二个疑问解决,为什么不用硬件流控这个功能,选型。

2024-05-31 16:19:02 1097

原创 天空星STMF407学习笔记

STM芯片厂家,会将这些地址,进行定义分配相应的寄存器,具体可以查看相关数据手册,对这些寄存器,写读,可以驱动,相应的引脚、片上外设、进行工作, 片上外设,也会被分配地址,片上外设是时序电路,需要时钟,被挂到时钟总线上,片上外设时钟分为、AHB 、APB1 、APB2。到此,有了实际地址,在此对实际地址进行,写set 、reset 进行操作。到此完成了,通过寄存器对,也就是地址,完成对片上外设的操作。

2024-05-24 12:46:57 421 1

原创 KEIL5 编译方式

当使用Rebuild 进行编译时(第二中编译方式),系统Build Output 则会对所有文件进行编译,Output输出所有文件的,Error跟Waring。#相关描述(第二种编译):光标提示 Rebuild Rebuild all target file #重新编译,重新编译对于全部文件。#相关描述(从左往右):光标放上去提示 Build Build target file #编译,编译当前文件。#第二种,对全部文件进行编译,速度较慢,但是所有文件都会进行编译。最后,希望对你有所帮助!

2024-04-26 15:22:04 543 1

原创 f1 stlink下载提示 No target connected 但swdio有正常显示

检查配置一切正常,swdio有正常显示,device里面芯片型号选择正常,可以正常读出idcode,这里经询问原因大概是芯片内核被锁,最后解决方法,使用热风枪跟换芯片,这里给大家一些硬件烧录失败自检方法,以f1c8t6芯片为例(pcb上集成芯片最小系统)4使用最小系统板进行对照实验,同样的程序不同的板子,小蓝板能烧的进去,那就可以将问题锁定就是板子本身有问题使用方法2进行测试如果正常建议更换芯片。最后希望能对你有所帮助!以上是烧录失败自检方法,同时在描述一些辅助烧录方法。1按着reset键进行烧录。

2024-04-21 14:16:35 459 1

GD32F1器件包,用于KEIL5识别GD32F1芯片

器件包,如果觉得官网下的慢的小伙伴可以下我的

2024-06-23

空空如也

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

TA关注的人

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