自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编译错误:C4056E type of input file ‘xxx‘ unknown

最近在Proteus上面进行仿真,将编译后的hex文件导入到电路图中,进行程序运行的时候,Proteus报了这么一个错误:Error: C4065E: type of input file 'Pian' unknown我上网一搜,好像与文件名称中存在空格有关,导致文件识别出现问题。于是我就想起了我的整个keil文件所在的文件夹,当时取名为“Dan Pian Ji”.我的Keil编译如下图

2023-12-28 20:55:47 1005

原创 STM32 定时器介绍

STM32F103系列单片机定时器主要有:系统定时器SysTick,2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7。下面先简单介绍一下:基本定时器:基本定时器只能计时,不能产生中断。它们适合于需要简单计时的应用程序。通用定时器:通用定时器可以配置为计时器或者PWM发生器,并且可以产生中断。它们可以用于控制电机、LED灯等。高级定时器:高级定时器有更多的功能,如输入捕获、输出比较和PWM发生器。它们适用于需要高精度计时或PWM控制的应用程序。

2023-10-25 11:58:30 1284

原创 STM32 定时器介绍--通用、高级定时器

前面文章中说过,STM32F103系列单片机中除了有系统定时器SysTick外,还有2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7。通用定时器的功能在高级定时器中都存在,不做赘述,这篇文章主要介绍STM32中的高级定时器。对于系统定时器SysTick和基本定时器的介绍分别如下:

2023-09-26 16:48:03 1155

原创 STM32 定时器介绍--基本定时器

在我之前文章中说过一个系统定时器SysTick,它存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。而今天介绍的STM32定时器是相当于一个外设,功能更加丰富全面。基本定时器(TIM6和TIM7)、通用定时器(TIM2、TIM3、TIM4和TIM5)、高级定时器(TIM1和TIM8)功能:基本定时器:只能实现定时的功能通用定时器:定时、输出比较、输入捕获、互补输出高级定时器:包含了基本定时器和通用定时器的所有功能。

2023-09-22 21:21:21 443

原创 树莓派 python3.9降级为python3.7

今天烧录了一个官方烧录器中的最新的镜像,打开之后python的版本是3.9的,之前做的一些东西都是基于python3.7的,再重新架构十分麻烦,于是干脆就把python3.9进行降级,降为python3.7.这个镜像不像之前的一些镜像,同时拥有python2.7和python3.7两个版本,直接切换软链接就完事,这个没有安装python3.7,所以还得进行python3.7的安装。5.移除之前的链接 这里之前的链接是3.9,所以是python3,如果是2.7版本的,就要是python2.

2023-06-24 15:01:52 4907 14

原创 树莓派与STM32之间串口通信

树莓派串口通信与蓝牙模块的基本介绍树莓派3/4B有两个串口,分别为 “硬件串口”/dev/ttyAMA0 和“mini串口” /dev/ttyS0。“硬件串口”有单独的波特率时钟源,性能高、可靠,“mini串口”性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供,因此“mini串口”有个致命的弱点是:波特率受到内核时钟的影响,内核若在智能调整功耗降低主频时,相应的这个mini串口的波特率便受到牵连。简单概括来说:“硬件串口”是全功能的,而“mini串口”则是阉割过的。

2023-06-23 14:24:20 5136

原创 树莓派使用VNC、SSH、Xrdp等方式进行远程控制的方法和注意事项

下面来总结一下远程操控树莓派用到的三种方式及其注意事项,其实这三种方式对于所有的Linux系统来说都是适用的。一、ssh控制树莓派SSH 是一种加密的远程登录协议,可以让用户通过网络远程访问树莓派的命令行界面。要使用 SSH 远程控制树莓派,需要在树莓派上启用 SSH 服务,然后在远程计算机上使用 SSH 客户端软件,例如 PuTTY 或 OpenSSH,连接到树莓派的 IP 地址和 SSH 服务器的端口号。

2023-06-23 12:48:43 3278

原创 树莓派VNC控制报错:The connection was refused by the computer 已解决

在进行VNC远程操控树莓派的时候,出现了这个错误:The connection was refused by the computer。如果以后VNC登录控制树莓派的时候,只输入IP地址即可。大概原因有两个:一个是树莓派的IP地址更改了,另一个就是树莓派的VNC服务没有开启。我的这块板子是个新板子,原因很显然是后者。密码在输入的时候看不见,自己输入完按回车即可。好了,这样就可以通过VNC远程操控树莓派了。5.打开VNC软件,输入IP和端口号。2. 输入自己树莓派的用户名和密码。

2023-06-06 16:39:39 7548 1

原创 备份树莓派SD卡 — 保姆级教学

在我们树莓派项目开发的过程中,经常遇到以下问题:1.自己辛辛苦苦开发出来的项目,害怕内存卡损坏,系统被破坏掉,想做一个备份。2.自己的树莓派内存卡内存不够了,想将原来卡上的内容放在新的大容量内存卡上。3.想将自己的项目分享给别人。这时候就需要将自己现在内存卡上的东西备份一下,做成镜像,这样就可以随时进行下载了。

2023-05-20 11:46:52 2029

原创 error: #5: cannot open source input file “sys.h“: No such file or directory 解决办法

把“sys.c”和“sys.h”这两个文件复制到我工程“user”文件夹下的“sys”文件夹内,这个文件夹用于存放一些外设等东西的.c、.h文件。其实这个错误的意思是没有找到“sys.h”这个文件,我复制的程序中用到了这个文件,而我的工程里面没有这个文件。复制进去之后,再回到工程内,把这两个.c、.h文件添加进去,右击“user”添加即可。好,这一步完成之后就可以了,编译已经不会再报错了。接下来,继续添加,按照方框顺序自上而下操作即可。这一类型的其他问题解决办法大同小异,添加文件即可。那么添加一下就好了。

2023-05-07 15:06:05 12096 13

原创 树莓派 二维云台调零控制

二维云台是通过IIC进行控制的,我们可以通过窗口命令输入:来检测IIC总线是否连接正常。当有40显示的时候就说明IIC总线正常。操控舵机我们需要一个PCA9685的模块,用到“Adafruit_PCA9685”的库函数,需要我们在官网下载。舵机的工作原理舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。

2023-05-02 23:36:45 1729

原创 AttributeError: module ‘serial‘ has no attribute ‘Serial‘解决办法

这样一个错误,我查了查网上,有人说是因为py文件名是“serial.py”的问题,但是我的py文件不是这个名字,而且安装也没有错误。于是我就重新卸载安装了一遍,结果成功了!在我使用 serial模块的时候,遇到了。重新安装一遍之后,就可以继续使用了!

2023-04-23 19:41:29 2176

原创 蓝桥杯15单片机--专项问题:多数暂存、平均值、最大值、最小值问题

的话,由于牵扯到小数显示,所以要定义两个变量:一个小数平均值(进行计算)和整数平均值(进行显示)。很简单,把第一个数当作最大值和最小值,然后每进去一个数进行比较,如果大于最大值或者小于最小值就把新数值化为最大值或最小值。首先,这一部分数据的存储肯定要用数组去做,我们定义一个可以存放50个数据的数组,distance[n]在第十二届国赛和刚刚过去的第十四届省赛中,遇到了一个新问题:多数暂存、平均值、最大值、最小值问题。其他的认真想想就可以。:如果读取的数据超过 50个,将数据依次前移,去掉最前面那一个数据。

2023-04-22 06:00:00 735 4

原创 蓝桥杯15单片机--串口通信模块

为没有串口的计算机提供快速的通道,而且,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。前面学的三种总线通信都属于串行通信,属于半双工,串口通信属于全双工。另一种分类:UART、单总线通信协议属于异步通信,SPI、IIC协议属于同步通信。来控制数据的发送和接收,这两个时钟源彼此独立,互不同步(UART,1-WIRE)。通常简称:串口通信,指使用单片机的串行接口进行数据传输。·其特点是:传送速度快,但所需数据线多,适用于近距离通信。串口通信的重要参数:波特率、数据位、停止位和奇偶校验。

2023-04-21 22:22:57 1431

原创 树莓派 GPIO口控制双色LED灯

GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通过它们可以输出高低电平或者通过它们读入引脚的状态(是高电平或是低电平)。树莓派对于GPIO的操作主要基于RPi.GPIO库,这个库是树莓派系统自带的。

2023-04-18 21:43:22 1474

原创 蓝桥杯15单片机--超声波模块

超声波时间差测距原理超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340*t/2。这就是所谓的时间差测距法。超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理

2023-04-17 12:57:02 2161

原创 树莓派 QT项目开机自启动

我自己用qt设置了一个界面,如何让他开机自启动呢?目录1.生成qt项目的可执行文件2. 编写一个自启动脚本3.重启树莓派1.生成qt项目的可执行文件QT项目的可执行文件就是.exe文件。首先在qt中打开,点击红色方框图标,选择Release

2023-04-15 11:20:45 1249

原创 opencv--可选颜色物体追踪函数

一、函数介绍作用:创建一个滑动条:滑动条的名字。- img:滑动条所在画布。- min:滑动条的最小值。- max:滑动条的最大值。:滑动条的回调函数。2.

2023-04-12 21:34:59 604

原创 C51中的sprintf()函数使用

在做蓝桥杯第五届国赛试题的时候,遇到这样一个问题:题目要求单片机通过串口返回电脑一组数据,包括温度、湿度、时间等,数据很多问且中间有大括号等符号做间隔,如果一个字符一个字符的分开重新定义,发送的话就非常麻烦。通过上网学习,发现了一个非常有效的办法:sprintf()函数来实现。但是,在C51中的sprintf函数与标准C语言中有所差别,注意区分。经过上网查阅资料,特此总结一下。

2023-01-15 16:46:14 5364

原创 如何将.ipynb文件转换成.py文件 一看就会

2.在弹出来的cmd窗口中输入:pip install jupyter notebook 然后等待下载安装。3.安装完成之后,在本cmd窗口继续输入:jupyter notebook,选择浏览器打开窗口即可。6.鼠标移到Download as上,点击Python就可以下载.py文件了。4.在弹出来的网页中,点击红色方框里面的内容,上传本地的.ipynb文件。1.打开cmd (快捷键 win+r ,在打开的窗口中输入cmd即可)5.上传完成之后,打开.ipynb文件,点击上面的file。

2023-01-11 16:36:55 3192 5

原创 opencv--颜色物体追踪 图片的形态学处理函数

这里首先确定是否安装imutils库,这个库能让调整大小或者翻转屏幕等基本任务更加容易实现。这一次主要应用的是对于图片的形态学处理函数。

2023-01-05 18:47:55 1226 6

原创 opencv--轮廓拟合函数 boundingRect(),minAreaRect(),minEnclosingCircle(),fitEllipse(),fitLine()

在计算轮廓时,可能并不需要实际的轮廓,而仅需要一个接近于轮廓的近似多边形。OpenCV提供了多种计算轮廓近似多边形的方法。

2023-01-04 20:24:38 14756

原创 opencv--颜色识别

通常,相机在RGB颜色模式下工作,但这种模式受到光线的影响较大,所以在opencv中,用HSV(色彩、饱和度、亮度)模型对颜色进行定义。除此之外,opencv中有多种色彩空间,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8种,使用中经常要遇到色彩空间的转化。

2023-01-01 22:54:52 7779 4

原创 STM32 ADC—模数转换器

简介:STM32单片机中含有1-三个独立的ADC 1 / 2 / 32-分辨率为12位3-每个ADC具有18个通道,其中外部通道16个,可测量16个外部和2个内部信号源。例如:温度传感器/VREFINT内部通道:温度传感器和通道ADC1_IN16相连接,内部参照电压VREFINT和ADC1_IN17相连接。可以按注入或规则通道对这两个内部通道进行转换。

2022-12-25 17:10:54 3151 3

原创 STM32 串行FLASH文件系统FatFs

FatFs文件系统源码:doc文件夹里面是一些使用帮助文档;在src是FatFs文件系统的源代码。integer.h:文件中包含了一些数值类型定义(typedef)。diskio.c:包含底层存储介质的操作函数,这些函数需要用户自己实现,主要添加底层驱动函数。ff.c: FatFs核心文件,文件管理的实现方法。该文件独立于底层介质操作文件的函数,利用这些函数实现文件的读写。

2022-12-21 11:30:26 2276

原创 Keil 学习中常见的问题记录,持续更新中...

记录在我学习stm32过程中遇到的错误与警告。

2022-10-29 22:11:43 896

原创 STM32 SPI协议 读写串行FLASH

通过SPI外设对板子上的串行FLASH芯片(掉电不丢失)进行读写。SPI外设产生的SPI通信协议是一种串行通信协议。STM32的内部也有FLASH存储器,用来存储烧录到板子上的程序。STM32F3系列的芯片只能把程序存储在内部的FLASH里面,而不能放在外部FLASH里面读取,但是F7系列的可以(XIP功能)SPI通信协议是一种高速(相对于IIC)全双工的通信总线。它被广泛地使用在ADC、LCD(液晶屏)等设备与MCU间,要求通讯速率较高的场合。

2022-10-29 19:33:08 2507 1

原创 STM32 IIC协议 读写EEPROM

EEPROM、MCU6050和OLED显示屏外设都是通过IIC协议【半双工】进行通信。除此之外,另一个广泛地使用在系统内多个集成电路间的通讯协议:SPI。目录一、IIC物理层:二、IIC协议层1.IIC的读写过程1-主机写数据到从机:2-主机由从机中读数据:3-通讯复合格式2.通讯的起始和停止信号3.数据有效性4.地址及数据方向5.响应三、程序1.IIC协议底层程序1-配置IIC宏定义2-初始化IIC用到的GPIO口3-IIC底层通信

2022-10-24 21:29:11 3543

原创 STM32 常用存储器介绍

易失性:掉电是否正常保存数据。丢失:易失性。但是,非易失性存储器读写的速度远远慢于易失性存储器。举个例子:写好的数据没有保存,电脑就会暂时将其放在易失性存储器(电脑是DRAM,STM32mini板子里面是SRAM)里面,因为CPU是不具备存储能力的,等到下次开机打开的时候,这些数据就不会存在。而我们数据保存之后就是放在了非易失性存储器(硬盘)里面,下次开机打开的时候还是存在的。

2022-10-22 16:24:50 1608

原创 数据结构基础--指针,结构体,typedef,形参实参详解、区分

在学习数据结构线性表的时候,遇到了一些问题,像指针,结构体,typedef,形参实参等较为抽象的概念,以及它们之间的联系,在此整理记录一下。目录一、实参与形参(一)定义(二)二者的区别与联系:(三)易混点:形参和实参的三种传递方式:1-值传递2-址传递3-引用(重)(四)形参、实参的传递方式的区别:二、结构体(一)、定义结构体1.基础知识2.结构体的嵌套3.结构体变量使用的注意事项(二)、结构体的初始化(三)、结构体数组四、struct与typedef的结合

2022-10-12 21:54:49 3127 3

原创 STM32 DMA—直接存储器访问

DMA:直接存储器访问。主要功能是可以把数据从一个地方搬到另外一个地方,而且不占用CPU。我们在前面学习串口的时候,我们向单片机发送的数据先暂存到SRAM里面,然后通过CPU将数据发送到串口,这样会占用CPU。DMA1:有7个通道,可以实现 P(外设)->M(内存)【例如ADC数据采集】,M->P【例如串口通信】,M->M【例如Flash到SRAM】DMA2:有5个通道,可以实现 P->M,M->P,M->M

2022-10-09 19:32:19 468

原创 STM32 USART—串口通信

目录一、串口通信协议物理层电平标准:1.RS232标准:2.USB转串口通讯(常用)3.原生的串口到串口二、串口通信协议软件层:三、串口功能框图1.引脚2.数据寄存器USART_DR3.字符帧组成介绍4.发送与接收数据5.串口的通信速率四、代码讲解1.USART初始化结构体:2.同步时钟初始化结构体:3.编程时常用到的固件库函数:五、程序实验一、串口通信协议物理层电平标准:1.RS232标准:RS-232 标准主要规定了信号的用

2022-10-05 18:35:26 3793 1

原创 STM32 通信的基本概念

串口型设备(USART):WIFI、GPS、GSNIIC型设备:OLED、EEPROMSPI型设备:公交卡、FLASHFSMC型设备:液晶、内存这些设备接口都叫做通信的协议,这些协议都有些公共部分,就是以下四点。目录一、分类方式1.串行通讯与并行通讯2.全双工、半双工、单工3.同步与异步二、通信的速率:

2022-10-01 19:28:32 325

原创 STM32 系统定时器--SysTick

SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中。所有的Cortex-M内核的单片机都具有这个定时器。通过系统定时器,我们可以实现精准的软件延时(毫秒、微秒级)。

2022-09-17 18:24:48 5258

原创 STM32的中断介绍

目录一、STM32中断应用概览(1)简介(2)中断编程的顺序:1.使能中断请求:2.中断优先级分组:3.配置NVIC寄存器,初始化NVIC_InitTypeDef;4.编写中断服务函数二、EXTI—外部中断/事件控制器(1)简介(2)EXTI结构图(3)初始化结构体成员(4)程序设计:1.初始化要连接到EXTI的GPIO。2.初始化EXTI用于产生中断/事件3.初始化NVIC,用于处理中断4.编写中断服务函数5.main函数

2022-09-05 21:36:03 14445

原创 STM32 复位时钟控制—RCC

时钟分为系统时钟,外设时钟,我们今天来看一下系统时钟。stm32的系统时钟由固件库配置好,不需要修改,我们了解认识一下,并学会修改使用。目录(1)系统时钟介绍(8个部分)(2)程序分析1.用HSE配置系统时钟2.用HIS配置系统时钟...

2022-08-28 22:21:23 1045

原创 STM32 固件库初应用--点灯(输出)、按键(输入)

目录一、用固件库点亮LED灯——输出(1)点亮灯(2)移植到其他板子二、按键检测——输入关于固件库的应用,我们从输入和输出两个角度来进行练习,外设都以常见的GPIO口为例。

2022-08-22 23:48:58 658

原创 STM32 固件库简介、工程模板创建保姆级教程

我们在一开始创建工程的时候,创建了一个.h文件,用于存放寄存器映射的代码,相当于51的。现在就写这个.h文件,以方便使用中直接引用赋值。还是以GPIO口为例。

2022-08-20 19:04:38 1365

原创 STM32 一灯大师——寄存器点亮流水灯

学习51我们从最简单的点灯开始,同样32也是,首先我们从最简单的寄存器控制点亮LED开始。1、配置端口输出数据寄存器(ODR)控制LED灯:给PC2/PC3输出低电平,LED灯亮;给PC2/PC3输出高电平,LED灯会灭。...

2022-08-18 16:09:20 2373 5

原创 51单片机:IO口扩展,74HC595芯片,8*8点阵

我们在之前的学习中,都是通过IO口直接控制板子上的外围器件:LED、数码管等。如果想要连接更多的外围设备,就需要通过扩展IO来实现。(74HC595芯片)

2022-06-30 12:08:12 2759

空空如也

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

TA关注的人

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