自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Alcohol Sensor(1)

Alcohol Sensor(1)计划用usart转adc传信息。首先应使能usart。usart注意的点:下图是对于复用的AFRL寄存器要配置的,每个IO口要用到4个位,要使用USART1/2应该选用AF7,因此配置AFRL寄存器AFRL寄存器如下,若要配置串口GPIO_A2,则应该配置下图的AFRL2为0111(如下图对应的AF7)具体配置可参考如下:配置GPIOx_AFRL或GPIOx_AFRH寄存器,将IO指定到所要功能对应的AFx/*PA9 指定为AF7,复用为USART1_TX

2021-12-19 17:41:11 662

原创 算法笔记 12-19

1.二叉树的构建、遍历和完全二叉树的判断#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxSize 100using namespace std;typedef char ElemType;typedef struct node { ElemType data; struct node* lchild

2021-12-19 12:34:41 671

原创 Power cfg①

Power cfg一、电源监控器STM32芯片主要通过引脚VDD从外部获取电源,在它的内部具有电源监控器用于检测VDD的电压,以实现复位功能及掉电紧急处理功能。(1)上电复位和掉电复位(POR&PDR)当检测到VDD的电压低于阈值VPOR及VPDR时,无需外部电路辅助,STM32芯片会自动保持在复位状态,防止因电压不足强行工作而带来严重的后果。 见图 POR与PDR ,在刚开始电压低于VPOR时(约1.72V),STM32保持在上电复位状态(POR,Power On Reset),当VDD电

2021-12-05 18:16:16 3999

原创 设备配置笔记01

具体配置详情在上个笔记,此为上次笔记的代码化(还有一部分未完成)//wm8978.c#include "stm32f4xx.h"#include "usart.h"#include "delay.h"#include "sys.h"#include "i2c.h"#include "wm8978.h"//WM8978寄存器值缓冲区,共58个寄存器,写WM8978的相应寄存器时同步保存到本地,又因为WM8978寄存器值是9位的因此用u16保存static u16 WM8978_REGVA

2021-11-28 17:57:48 567

原创 I2S相关

I2S一、简介I2S(Inter IC Sound)又称集成电路内置音频总线,是一种数字音频设备间的音频数据传输总线标准,该总线专责于音频设备之间的数据传输。采用独立导线传输和时钟信号分离避免因时差引发失真。二、I2S特点支持全双工/半双工通信支持主/从模式设置8位可编程线性预分频器,可实现精确的音频采样频率(8~192Khz)支持16位/24位/32位数据格式数据包帧固定为16位(仅16位数据帧)或32位(可容纳16/24/32位数据帧)可编程时钟极性支持MSB对齐(左对齐)、LSB对齐(右

2021-11-21 18:02:23 2775 1

原创 WAV&WM8978

一、WAVWAV即WAVE文件,是最常用的数字化声音文件格式之一,扩展名为‘.wav’,用于保存Windows平台的音频信息资源。WAV格式还支持MS ADPCM、CCITT A LAW 等多种压缩运算法,支持多种音频数字,取样频率和声道。标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率及16位量化数字,二者声音文件质量相差无几。WAV是由若干个Chunk(区块)组成的。按照在文件中的出现位置包括①RIFF WAVE Chunk、②Format Chunk、③Fact Chunk(可选)

2021-11-21 18:02:12 2618 2

原创 carm note

需要进照相机操作,则需要将图片缓存为.bmp或.jpg格式的图片。两种格式介绍如下:一、BMP编码BMP 文件是由文件头、位图信息头、颜色信息和图形数据等四部分组成。具体解释如下:1、BMP 文件头(14 字节):BMP 文件头数据结构含有 BMP 文件的类型、文件大小和位图起始位置等信息。//BMP 文件头typedef __packed struct{ u16 bfType ; //文件标志.只对'BM',用来识别 BMP 位图类型 u32 bfSize ; //文件大小,占四个字节

2021-11-14 15:20:49 1032

原创 算法笔记21.11.07

栈1.基本概念栈是一种 特殊的线性表 ,仅能在线性表的一端(Top)进行操作。栈顶(Top):允许操作的一端;栈底(Bottom):不允许操作的一端首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系。只不过它是一种特殊的线性表而已。定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是栈底。它的特殊之处就在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行。这也就使得:栈底是固定的,最先进栈的只能在栈底。栈的插入操作,叫作进栈,也称压栈、入栈;栈的删除操作,叫作

2021-11-07 15:40:22 75

原创 算法笔记10.31

循环链表定义:将单链表中最后一个数据元素的next指针指向第一个元素循环链表拥有单链表的所有操作——创建链表、销毁链表、获取链表长度、清空链表、获取第pos个元素操作、插入元素到位置pos、删除位置pos处的元素新增功能:游标——在循环链表中可以定义一个“当前”指针,这个指针通常称为游标,可以通过这个游标来遍历链表中的所有元素。(可以将游标当作迭代器)。...

2021-10-31 12:35:05 67

原创 OLED复习

OLED复习OLED工作模式选择:4种模式通过模块的BS1/BS2设置,BS1/BS2的设置与模块接口的关系如下三个脚,中间的TP引脚接的是OLED显示屏;LP接的是地;HP接的是VCCCS:OLED片选信号。WR:向OLED写入数据。RD:从OLED读取数据。D[7:0]:8位双向数据线。RST(RES):硬复位OLED。DC:命令/数据标志(0,读写命令;1,读写数据)。OLED控制器为SSD1306,有时读有时写,因此需要DC引脚来作用。模块的8080并口读/写的过程为:先

2021-10-31 12:33:22 1403

原创 51单片机笔记03

I2C补充及51上的I2C1.I2C串行总线的组成及工作原理采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。常用的串行扩展总线有:IC (&Inter IC BUS总线、单总线(1一WIRE RUIS 、SPI (Serial Peripheral Interface总线及Microwire/PLUS等这里我们仅讨论I2C串行总线。2.I2C总线概述12C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决

2021-10-24 19:35:26 322

原创 51单片机笔记02

中断89C51/52 的中断系统有5个中断源,2个优先级,可进行二级中断嵌套。优先级从上往下递减1、(P3.2)(INT0 外部中断0)可由ITO (TCON.0)选择其为低电平有效还是卞降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0 (TCON.1)置1,向CPU申请中断。2、(P3.3)(INT1 外部中断1)可由IT1 (TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现看效的中断信号时,中断标志IE1 (TCON.3)置1,向CPU

2021-10-21 16:25:06 1785

原创 FATFS

FATFS负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件的方法。常用的文件系统:-FAT / FATFS-NTFS: 基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构-CDFS:CDFS是大部分的光盘的文件系统-exFAT(1)简介:FATFS是一个完全免费开源的FAT 文件系统模块,专门为小型的嵌入式系统而设计。完全用标准C 语言编写,所以具有良好的硬件平台独立性。可以移植到8051、PIC、AVR、SH、Z80、H8、ARM 等

2021-10-17 17:20:06 608

原创 51单片机笔记01

单片机IO口51的P0口没有上拉电阻,P1P2P3口都有,若要输出高电平必须外部接一个上拉电阻。强推挽输出是通过两个晶体管实现的上拉电阻就是将不确定的信号通过一个电阻拉到高电平(实际是VCC接一个电阻),同时此电阻起到一个限流的作用,下拉就是下拉到低电平。1、OC门(开漏输出的一个电路)要输出高电平,外部必须加上拉电阻。2、加大普通IO口的驱动能力。3、起到限流的作用。4、抵抗电磁干扰。上下拉电阻的选取原则1、从降低功耗方面考虑应该足够大,因为电阻越大,电流越小。2、从确保足够的引脚驱

2021-10-15 09:49:27 1753

原创 SD卡和SDIO

SD卡和SDIOSDIO(1)简介SDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,例如:蓝牙、WIFI、照相机等。SDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器等应用。STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SD I/

2021-10-10 18:24:48 4019

原创 2021-10-31

OLED相关OLED工作模式选择:4种模式通过模块的BS1/BS2设置,BS1/BS2的设置与模块接口的关系如下三个脚,中间的TP引脚接的是OLED显示屏;LP接的是地;HP接的是VCCCS:OLED片选信号。WR:向OLED写入数据。RD:从OLED读取数据。D[7:0]:8位双向数据线。RST(RES):硬复位OLED。DC:命令/数据标志(0,读写命令;1,读写数据)。OLED控制器为SSD1306,有时读有时写,因此需要DC引脚来作用。模块的8080并口读/写的过程为:先

2021-10-07 21:28:55 69

原创 OV2640

OV2640实验硬件连接通过开发板的OLED/CAMERA接口与摄像头模块连接。具体引脚连接如上图所示

2021-10-03 11:39:59 10065

原创 OV2640 DCMI

OV2640简介: 1/4寸CMOSUXGA (1632 * 1232)图像传感器。体积小、工作电压低,提供单片UXGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。(此处一般选8位)UXGA最高15帧/秒(SVGA可达30帧,CIF可达60帧)。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能辽程包括伽玛曲线、白平衡、对比度、色度等都可以通过SCCB接口编程。特点:(1)高灵敏度、低电压适合嵌入式应用;(2

2021-09-26 18:54:18 3743

原创 算法笔记01

时间复杂度评估执行程序所需要的时间,可以估算出程序对计算机处理器的使用程度。使用大O表示法表示。(复杂度大小如下)当数量级为O()

2021-09-25 22:07:32 93

原创 NRF24L01(1)

以NRF24L01为例,实现无线通信NRF24L01采用SPI通信,可以很方便的连接到MCU上。NRF24L01的特点:(1)2.4G全球开放的ISM频段,免许可证使用。(2)最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。(3)126个可选的频道,满足多点通信和调频通信的需要。(4)内置CRC检错和点对多点的通信地址控制。(5)可设置自动应答,确保数据可靠传输。CE:模式控制线。在 CSN为低的情况下,CE 协同CONFIG 寄存器共同决定NRF24L01 的状态(参照

2021-09-19 18:24:14 784

原创 CAN协议

CAN协议CAN简介CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的,为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要的串行通信协议。CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。CAN连接图CAN 协议具有以下特点。(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的

2021-09-10 23:50:44 4291

原创 485接口

485接口串口串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。典型的串行通讯标准是RS232和RS485,它们定义了电压,阻抗等,但不对软件协议给予定义。RS232接口缺陷:(1) 接口的信号电平值较高(+/-12V),易损坏接口电路的芯片。(2) 传输速率较低,在异步传输时,波特率为20Kbps。(3) 接口使用一根信号线

2021-09-07 18:23:28 10802

原创 ADC代码

ADC代码void Adc_Init(void) //ADC通道初始化{ GPIO_InitTypeDef GPIO_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStruct; ADC_InitTypeDef ADC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Per

2021-09-04 18:43:37 1470

原创 DAC相关

DAC简介DAC为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与ADC相反。 在常见的数字信号系统中,大部分传感器信号被化成电压信号,而ADC把电压模拟信号转换成易于计算机存储、处理的数字编码, 由计算机处理完成后,再由DAC输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。STM32具有片上DAC外设,它的分辨率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响

2021-09-04 18:37:47 1007

原创 ADC电压采集

ADC电压采集ADC简介STM32F407ZGT6有3个ADC,每个ADC有12位、10位、8位和6位可选,每个ADC有16个外部通道。 另外还有两个内部ADC源和VBAT通道挂在ADC1上。ADC具有独立模式、双重模式和三重模式, 对于不同AD转换要求几乎都有合适的模式可选。ADC功能非常强大,具体的我们在功能框图中分析每个部分的功能。ADC功能框图(1)电压输入范围:ADC输入范围为:V(REF)- ≤ V(IN) ≤ V(REF)+。由V(REF)-、V(REF)+ 、V(DDA) 、

2021-08-29 16:27:57 20770

原创 电容触摸屏

电容触摸屏触摸屏又称触控面板,它是一种把触摸位置转化成坐标数据的输入设备,根据触摸屏的检测原理,主要分为电阻式触摸屏和电容式触摸屏。 相对来说,电阻屏造价便宜,能适应较恶劣的环境,但它只支持单点触控(一次只能检测面板上的一个触摸位置),触摸时需要一定的压力, 使用久了容易造成表面磨损,影响寿命;而电容屏具有支持多点触控、检测精度高的特点,电容屏通过与导电物体产生的电容效应来检测触摸动作, 只能感应导电物体的触摸,湿度较大或屏幕表面有水珠时会影响电容屏的检测效果。区分电阻屏和电容屏一般通过绝缘物体点击是否响

2021-08-22 18:21:21 5109 1

原创 扩展外部SRAM

扩展外部SRAM一、SRAM控制原理STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。SRAM中的数据断电即失(属于易失性存储器),因此只适用于存储经常改变的变量。扩展内存时一般使用SRAM和SDRAM存储器,但STM32F407系列的芯片不支持扩展SDRAM(STM32F429系列支持),它仅支持使用FSMC外设扩展SRAM。给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般

2021-08-15 18:13:05 3642

原创 FSMC配置

LCD显示中英文

2021-08-08 18:29:36 1446

原创 LCD显示

LCD显示

2021-08-01 17:55:42 1387

原创 显示器简介

显示器简介一、显示器简介显示器属于计算机的IO设备,即输入输出设备。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。液晶显示器,简称LCD(Liquid Crystal Display),相对于上一代CRT显示器(阴极射线管显示器),LCD显示器功耗低、体积小、承载的信息量大。利用液晶控制的原理,做出可控红、绿、蓝光输出强度的显示结构,把三种显示结构组成一个显示单位,通过控制红绿蓝的强度,可以使该单位混合输出不同的色彩,这样的一个显示单位被称为像素。几种显示器简介:(1) LE

2021-07-25 17:50:40 3161

原创 SPI协议

EEPROM

2021-07-25 15:46:05 5968

原创 PWM输出

PWM输出脉冲宽度调制(PWM),即“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说,就是对脉冲宽度的控制。PWM工作过程(以通道1为例)CCR1:捕获比较(值)寄存器(X=1,2,34):设置比较值。CCMR 1:OC1M[2:0]位:对于PWM方式下,用于设置PWM模式1【110】 或者PWM模式2【111】CCER:CC1P位:输入捕获1输出极性。0:高电平有效,1:低电平有效。CCER:C

2021-07-18 18:05:58 4207

原创 STM32定时器

STM32定时器一、通用定时器功能特点描述1.STM32F4的通用TIMx (TIM2、TIM3、TIM4和 TIM5)定时器功能特点包括:16(TIM3、TIM4)/32(TIM2、TIM5)位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)2.16位可编程(可以实时修改)预分频器(TIMX_PSC),计数器时钟频率的分频系数为1~65535之间的任意数值。3.4个独立通道(TIMx_ CH1~4),这些通道可以用来作为:(1)输入捕获(2)输出比较(3)PW

2021-07-16 23:52:09 472

原创 I2C协议

DMA代码

2021-07-12 12:26:07 5697

原创 DMA

一.DMA1.简介DMA——Data Memory Access,直接存储器访问属于Stm32的一个外设主要有两个(DMA1和DMA2)功能是接到CPU命令进行数据的高速传输,传输时可以空出CPU干别的事DMA1:从外设P( peripheral)将数据搬运到M(Memory,在此特指SRAM),也可以从M搬到PDMA2:从外设P( peripheral)将数据搬运到M(Memory,在此特指SRAM),也可以从M搬到P,还可以从M(在此指FLASH)到M(在此指SRAM)。2.功能框图(1

2021-07-04 18:30:19 1791

原创 USART串口通信 (自用笔记)

USART串口通信USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器一.通讯的相关概念串口通讯一般都是异步通讯同步通讯:通讯时双向输出接收信息,每传输一次数据都对应时钟控制。因此同步通讯时需要Stm32给外界一个时钟用于同步收发。异步通讯时,只用到RX、TX,先把数据打包成帧,TX开始数据传输时,是读取到启动位,启动位后紧跟数据帧(8位或者9位,由USART_CR1的M位(位12,控制字长

2021-05-19 20:30:38 3085

原创 EXTI(自用笔记)

中断之EXTI(补充)中断的实现不仅需要NVIC的配置,还需要配置EXTI。以下以通过上升沿判定的按键输入实验为例来实现中断举例:(该例子中以PE2为例)配置EXTIX_Init()初始化函数(exti.c文件)void EXTIX_Init(void){ NVIC_InitTypeDef NVIC_InitStructure;//声明NVIC结构体 EXTI_InitTypeDef EXTI_InitStructure;//声明EXTI结构体 KEY_Init(); //对应I

2021-05-16 18:34:15 1290 1

原创 NVIC的使用

NVIC相关内容中断编程的四个部分——1.使能中断请求;2.配置中断优先级分组(一个项目中只需要配置一次)3.配置NVIC寄存器,初始化NVIC_InitTypeDef;4.编写中断服务函数。中断过程的三个部分——1.配置NVIC_Config()函数:NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。因此控制中断的进行与NVIC_Config函数的配置密切相关。2.配置EXTI_Config()函数:3.编写中断服务函数:...

2021-05-09 18:58:19 3749

原创 时钟系统 Systick定时器 NVIC 自用笔记

时钟系统(注:对于stm32每个外设需要使用都需要使能相对应的时钟)五个时钟:LSI低速内部时钟:32khz 由RC振荡器产生,频率相对不是很稳定给独立看门狗作为时钟(时钟精度不高)对于RTC,LSI和LSE、HSE都可以给它使能,但因为精确度的问题,一般选择LSESYSCLK系统时钟:LSE低速外部时钟:32.768khz由相应晶振产生,较为精确HSE高速外部时钟:通过外界晶振产生4-26Mhz(若要用来使能RTC则需要通过一个2-31位的分频器分频后生成的时钟才可作为RTC时钟使用)

2021-04-21 15:26:18 886

原创 GPIO相关(自用 寄存器版本)

GPIO输入输出(大部分操作与库函数版本一致,包括keil的操作,但需注意引入的头文件不同)以跑马灯为例,直接分析代码:#include <led.h>#include <stm32f4xx.h>void LED_Init(void){ RCC->AHB1ENR|=1<<5; //PF9 GPIOF->MODER &=~(3<<2*9); //该寄存器是32位寄存器, //将二进制00从0、1位置移到18

2021-04-13 23:20:55 280 1

空空如也

空空如也

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

TA关注的人

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