自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 相机的内参与外参

像素坐标系通常定义方式是:原点o位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。我们设像素坐标在u轴上缩放a倍,在v轴上缩放了B倍。同时,原点平移了[cx, cy]T。相机的内参表示的是相机坐标系到像素坐标系一个缩放关系,是相机出产后就确定了的一系列参数。光心O所处平面是相机坐标系(O,P),像素平面所在坐标系为像素坐标系(O’,P’)。相机的外参:从世界坐标系转换到相机坐标系,一般由旋转矩阵+平移向量构成。焦距f:O到O’的距离。R ,t为相机的外参。

2024-07-24 20:14:14 363

原创 双目视觉原理

深度相机通过计算不同位置的深度信息构成一幅包含像素位置和距离位置的灰度图。用二维坐标表示3D信息,其中灰度图的灰度值就代表距离信息。单凭一个相机中的单个像素点,无法获取空间中一个点的深度信息,双目相机则可以测量同一个点利用双目交汇原理获取该点在深度上的位置。当前主流解决办法:双IR+结构光,通过激光打出特征点,避免单色背景或者光强变化差异大,缺乏纹理细节等问题。寻找2个相机拍摄的2个图片中对应的像素点,这个过程需要特征提取、特征匹配等算法。XL,XR为成像平面的2个像点,其距离为视差D。

2024-07-24 10:17:02 193

原创 笔记1:基于锚框(先验框)的目标检测

一类目标检测算法基于锚框来预测边缘框,每个锚框作为一个样本进行训练

2023-12-29 20:15:01 668

原创 1.golang-hello go之一个文件夹下面只有一个入口函数main

golang初级学习

2022-10-19 22:09:11 838 1

原创 笔记19:STM32F4高级定时器捕获应用之频率检测

1.基本知识高级控制定时器可用于各种用途,包括测量输入信号的脉冲宽度(输入捕获),或者生成输出波形(输出比较、 PWM 和带死区插入的互补 PWM)。使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。高级控制定时器( TIM1 和 TIM8)和通用 (TIMx) 定时器彼此完全独立,不共享任何资源。2. 引脚有关本次用到到的是TIM1_CH3,涉及到以下对应的引脚 PE13/PA0,注意若想要用LCD显示相关参数时,不能使用PE13,会对LCD显示有影响

2021-07-13 13:36:00 991 1

原创 笔记18:SPI之 芯片W25Q128简介

一.STM32F407中的W25Q128与MCU连接原理图工作电源: 2.7V to 3.6V存储型矩阵: 一共有65,536页,每页256字节。每次只能写入一页,也就是每次只能写入256个字节。擦除时,只能以16页为最小单位,也就是一个扇区:16*256bits,一次就要擦8KB。写入时可以以字节为单位写入,但是擦除时只能以扇区为单位擦除。芯片支持标准的串行外设接口,比如SPI,也支持双IO-SPI或者四IO-SPI。时钟:SPI clock frequencies of up to 104M

2020-09-16 12:54:26 20000 4

原创 笔记17:SPI--串行外设简介

一.SPI协议简介((Serial Peripheral Interface:串行外设接口,高速全双工(同一时刻可以双向传输)的通信总线)SPI物理层1.1 SPI通信设备之间常用连接方式SPI通信使用三条总线以及片选信号,三条总线分别是SCK,MOSI,ISO,片选线是SS.从连接方式可以看出,从机三条总线是公用的,片选线是独立的。片选线 SS: I2C通信时,通过设备地址进行寻址,但是SPI通信没有设别地址,要确定使用哪一个从机,则需要对片选线进行操作,片选线设置为低电平,则选中该从机,因

2020-09-15 20:14:56 1316

原创 笔记7:Java数据类型转换的规则

第一条:八种基本数据类型中,除boolean 类型不能转换,剩下七种类型之间都可以进行转换第二条:如果整数型字面量没有超出byte,short,char的取值范围,可以直接将其赋值给byte, short, char类型的变量。//java语言规定,字面量默认当作整形处理byte y=127;short s=100;//97是整形,Java语言规则,默认整形处理//c2是char类型char c2=97;System.out.println(c2);//输出 a 这个字符第三条:小容

2020-08-13 14:21:12 258

原创 笔记16:STM32矩阵按键控制IO口完整代码

一 .矩阵按键原理矩阵按键有两种扫描方式:方法一:逐行扫描:我们可以通过低四位轮流输出低电平来对矩阵键盘进行逐行扫描,当高四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。方法二:行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样

2020-08-09 14:10:12 3935 2

原创 笔记15:STM32F4寄存器操作GPIO

一. 寄存器操作配置过程1.配置过程①. 使能IO口时钟。配置相关寄存器寄存器RCC->AHB1ENRRCC_AHB1外设时钟使能寄存器是一个32位的寄存器,可以看到,低9位是控制GPIO1-GPIOE。例如要使用GPIOB,则应该写为:RCC->=1<<1;②. 初始化IO口模式。配置四个配置寄存器: GPIOx_MODER/ GPIOx_OTYPER/ GPIOx_OSPEEDR/ GPIOx_PUPDR③. 操作IO口,输出高低电平。配置寄存器GPIOX_O

2020-08-09 13:32:40 3263

原创 笔记6:Java数据类型

一. 数据类型概述1、数据类型有什么用?数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。int i=10;double d = 1.23;i变量和d变量类型不同,空间大小不同。2、数据类型在java语言中包括两种:第一种:基本数据类型基本数据类型又可以划分为4大类8小种:第一类:整数型第二类:浮点型第三类:布尔型第四类:字符型8小种:byte, short, int, long,float, doublebooleanchar第二种:引用数据类型

2020-08-04 21:18:01 147

原创 笔记5:Java变量

一. 字面量什么是字面量?java语言中的“数据”称之为字面量。字面量类型整形:1,2,-200等整数。浮点型:3.14等小数。布尔型:只有两个ture 和false,表示真和假。字符型:‘a’,‘中’ 单引号中的单个字符(一定是单个字符)。字符串型:“a”,“abd”,"中国"等双引号括起来的就是字符串。二.变量public class Varible{ public static void main(String args[]){ //数据都会在内存中存储起来,然后CP

2020-08-03 20:08:43 140

原创 笔记4:java标识符与关键字

一. 标识符1.在Editplus文本工具中,黑色字体就是标识符标识符通常可以用来标识:类名;方法名;变量名;接口名;常量名…2.什么是标识符呢?通俗的来讲,凡是程序员自己有权力命名的单词就是标识符。...

2020-08-03 17:43:44 180

原创 笔记14:STM32F4之电容触摸按键

一. 电容触摸按键原理1.电路原理介绍上图是基于整点原子STM32F4的原理图,其中蓝色TPAD部分就是我们电容触摸按键位置,红色的TPAD是悬空的,需要我们将其与其他引脚相连接起来。在开发板上,我们需要用跳线帽将STM ADC与TAPD连接起来,这样TAPD引脚就可以与PA5连接起来了。(也可以用其他引脚)由于要用到捕获,因为我们需要在数据手册上查看PA5可以对应哪一个定时器通道。由上图我们选择定时器2通道1。上图是按键按下前后对比图。R:外接电容充放电电阻。按键按下之前,电路之中只连接

2020-08-03 14:56:54 3486

原创 笔记 13:STM32F4的输入捕获

一.原理介绍通用定时器2-5的总框图上图的红色框里面的部分对应如下部分:第一部分:滤波由图中我们可以看到,滤波器递减计数器的输入有两个,一个是定时器的输入频率(TIMxCLK),一般为 84Mhz/168Mhz(看该定时器在那个总线上),一个是我们可以设定的值fdts,是根据TIMx_CR1的CKD[1:0]的设置来确定的。如果我们设置CKD[1:0]=01,则是将定时器输入频率2分频=fdts。至于如何起到滤波作用,还需要用到另外一个位(TIMx 捕获/比较模式寄存器 1 (TIMx

2020-08-01 17:19:24 2438

原创 笔记12:定时器输出PWM波

一. PWM概述PWM:是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,就是对脉冲宽度的控制。定时器的各路输出与其对应的IO口STM32F4 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出!下图就是定时器各路输出对应的IO口。从图中可以看出,一路有可能对应多个IO。二.工作原理由上图我们可以看到:在利用

2020-08-01 12:17:29 2935

原创 笔记3:public class和class的区别

测试看结果结论1:一个java源文件可以定义多个class结论2:public的类不是必须的,可以没有结论3:一个源文件只要有一个class的定义,那必然会生成对应得class文件结论4:public的类可以没有,如果有的话,public修饰的类名必须和源文件名保持一致。结论5: 由结论4可知,如果有public 的类,那么public类有且只有一个结论6:每个类中都可以写入口(main方法),但实际开发中基本不怎么用。想从哪个入口进去,就用 java+对应入口类名(举例:java T1

2020-07-30 10:07:17 307

原创 笔记2:Java编程之前的准备工作

一. 配置环境变量注意:修改完环境变量后,DOS命令窗口必须重新打开才会起作用。配置环境变量path的步骤(对于WIN10)操作系统:桌面计算机上右键–>属性–>高级系统设置–>环境变量系统变量:范围比较大,系统变量会让计算机所有用户都起作用。用户变量:范围比较小,这个变量只是作用于当前用户。.怎么修改path环境变量?找到系统变量中的path,鼠标选中后点击新建,在弹出的窗口中变量名写:Path,变量值就写包含javac.exe文件的文件夹路径,(!!!注意要在路径后面加上

2020-07-29 17:32:57 259

原创 笔记1:Windows系统常识及Java初步了解

一.在哪里写DOS命令?1.打开位置:DOS命令窗口2.如何打开:开始菜单–>运行–>输入cmd(回车)–>进入DOS命令窗口(默认黑色界面)快捷方式为:Window键+R键二.常见DOS命令exit:退出当前DOS窗口cls:清屏,即为clear screen,当在DOS窗口输入很多之后,再输入cls,之前屏幕中写的就会被清除掉DOS窗口怎么复制:直接选中要复制的内容就好了,此时选择的内容就已经复制在粘贴板上了。dir:列出当前目录下所有的子文件/子目录。cd:cd:

2020-07-28 21:52:58 509

原创 笔记9:STM32F407之TFTLCD相关原理介绍

一. 基本概念1.三种显示器简介(1) LCD: 液晶显示器,简称 LCD(Liquid Crystal Display),液晶是一种介于固体和液体之间的物质,本身不发光,因此在制作显示屏时需要背光源(2) LED: LED点阵显示器,LED 点阵彩色显示器的单个像素点内包含红绿蓝三色 LED 灯,我们见的最多的就是滚动的那种灯牌,每一个LED就是一个像素点(像素概念稍后介绍),这样会导致屏幕像素密度低,肉眼都能够看见每一个像素点。(3) OLED:与LED不同的是OLED是采用的像素单元是“有

2020-07-16 10:12:23 5149 1

原创 笔记11:STM32—— DMA简介和结构介绍

一. DMA简介DMA,即为 Direct Memory Access,直接存储器访问。实现数据高速在外设寄存器与存储器之间或者存储器与存储器之间传输提供了高效的方法。之所以称之为高效,是因为 DMA 传输实现高速数据移动过程无需任何 CPU 操作控制。这里的外设一般指外设的数据寄存器,比如 ADC、 SPI、 I2C、 DCMI 等等外设的数据寄存器,存储器一般是指片内 SRAM、外部存储器、片内 Flash 等等。作用:为CPU减负STM32F4有两个DMA控制器,每个 DMA 控制器有 8 个

2020-07-14 18:33:15 2648

原创 笔记8:STM32F407 之FSMC

一. FSMC简介名称:FSMC ,即为 Flexible Static Memory Controller 的缩写,译为灵活的静态存储控制器。它可以用于驱动包括 SRAM、NOR FLASH 以及NAND FLSAH 类型的存储器。二 . 结构框图2.1 FSCM相关通讯引脚其中FSMC_NE[1:4]引脚有四根,对应STM32内部不同的存储区域。例如,当 STM32访问 0x6C000000-0x6FFFFFFF 地址空间时,FSMC_NE3 引脚会自动设置为低电平,由于它连接到 SRAM

2020-07-13 16:32:30 9681

原创 笔记10:STM32F407ADC简介+定时器触发ADC1

ADC,即Anolog to Digital Converter,模拟信号到数字信号的转换。模拟信号:连续的信号,就像连续函数一样的数字信号:离散的信号,数字信号,就像点一样。举例:若我们要将3.3V的交流电压,正弦信号转化为数字信号,若3.3V用数字信号100表示,则1.65V则用熟悉信号50表示。一. 采集信号范围:0-3.3VADC 输入范围为: VREF- ≤ VIN ≤ VREF+。由 VREF-、 VREF+ 、 VDDA 、 VSSA、这四个外部引脚决定.在设计时,已经将VREF-与

2020-07-10 18:08:37 11352 17

原创 笔记7:STM32F4--串口通信基本知识

一.串口通信协议1.两个层物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。协议层:协议层主要规定通讯逻辑,统- -收发双方的数据打包、解包标准。其实就是软件部分。简单来说物理层规定我们用嘴巴还是用肢体来交流协议层则规定我们用中文还是英文来交流1.1.物理层1.1.1 232串口:STM32都是使用TTL电平传输,因此若用R232标准电平传输,需要电平转换芯片。1.1.2 USB转串口:主要用于芯片和电脑之间传输常用转换芯片有:C

2020-07-09 00:37:37 1532

原创 笔记7.1:STM32F407之通信基本概念

一.通信基本概念1.串行与并行并行:一次性传输完,如一个八位的数据,D0-D7,D0-D7一起传输,需要八根线串行:一个一个传输,如一个八位数据,D0-D7,先传输D0,再传输D1,依次下去。在STM32F4中,UASRT,SPI,I2C都是串行方式传输数据。2.数据通信方向上分为:全双工,半双工,单工全双工和半双工都有两个方向,只是能否同时两个方向进行不同,单工只有一个方向。3.同步与异步针对与传输时数据是否容易出错来讲。同步需要一个额外的时钟去同步数据,异步则不需要。同步:异步:

2020-07-08 09:46:05 347

原创 笔记2:STM32F4的文件及其关系

1.STM32F407 系列的启动文件为startup_stm32f40_41xxx.s:主要是进入堆栈之类的初始化,中断向量表以及中断函数定义,启动文件要引导进入主函数。2.其他主要文件及其关系3.FWLib 文件夹下面:src 存放的是固件库的.c 文件, inc 存放的是对应的.h 文件4....

2020-07-08 09:09:27 531

原创 笔记3:STM32 ---GPIO的基本知识

一.简介:GPIO:general purpose input output,通用输入输出端口,简单的来说也就是软件可控制的引脚,可以通过软件控制输出1或者0,STM32的GPIO引脚与外部设备连接起来,从而实现与外部通讯,控制与数据采集的功能。GPIO与引脚的区别:GPIO属于引脚的一部分,但是不是所有的引脚都可以充当GPIO。GPIO功能:STM32F4XX英文数据手册pin:表示贴片封装ball:表示DIP双列直插引脚分类:STM32里面除开ADC I/O是3.3V,其他I/O都是

2020-07-07 22:11:47 1025

原创 笔记1:STM32入门了解知识

芯片正方向识别:有点的芯片,小点对应的是第一个脚,然后逆时针旋转到144脚;如果没有点,则正对丝印(上面的AT,ARM标识),左下脚是第一脚。STM32芯片构成:四条总线:每个总线下有哪些外设:参考官方中文参考手册–>2.2:存储器组织结构寄存器是什么:每一个寄存器就代表一个内存单元一. 寄存器映射就拿外设GPIOF来说,其基地址是:0x4002 1400,偏移地址:0x14,因此GPIOF地址为:0x4002 1414,若是向这个地址写入一数据,按原始C语言应该为:寄存器映

2020-07-07 19:33:28 1586

原创 笔记6:STM32F4外部中断EXTI

一.EXTI简介1.EXTI:外部中断/事件控制器何为EXTI的外部?2.EXTI框图3.控制EXTI的寄存器二.编程部分1.步骤:初始化EXTI线所涉及到的GPIO:开启按键的GPIO -->选择引脚 -->选择引脚模式(输入还是输出) -->选择上拉/下拉与否 -->取地址,使用结构体初始化EXTI:使能SYSCFG时钟,使用EXTI必须使能SYSCFG时钟 -->连接中断源到KEY引脚 -->设置好初始化结构体参数:EXTI Line :

2020-07-06 17:24:16 1083 2

原创 笔记5:STM32F4中断简介

一.中断简介1.嵌套向量中断控制器NVIC:属于内核部分2.中断结构体typedef struct{__IO uint32_t ISER[8]; //中断使能寄存器uint32_t RESERVED0[24];__IO uint32_t ICER[8]; //中断清除寄存器uint32_t RSERVED1[24];__IO uint32_t ISPR[8];

2020-07-05 23:02:04 686

原创 笔记4:STM32F4基本定时器

1.有12个16位的定时器,两个32位的定时器高级定时器:TIM1和TIM8,带可编程死区的互补输出基本定时器:TIM6和TIM7,多用于DMA2.定时器的更新中断更新中断,定时器达到计数最大值或最小值时产生中断,计数器初始化(向上溢出或向下溢出时)。...

2020-07-05 18:25:51 1763

空空如也

空空如也

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

TA关注的人

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