![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32
文章平均质量分 88
以使用为目的,学习了解基础知识。
Haohao fighting!
这个作者很懒,什么都没留下…
展开
-
编译错误: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 · 1415 阅读 · 1 评论 -
STM32 定时器介绍
STM32F103系列单片机定时器主要有:系统定时器SysTick,2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7。下面先简单介绍一下:基本定时器:基本定时器只能计时,不能产生中断。它们适合于需要简单计时的应用程序。通用定时器:通用定时器可以配置为计时器或者PWM发生器,并且可以产生中断。它们可以用于控制电机、LED灯等。高级定时器:高级定时器有更多的功能,如输入捕获、输出比较和PWM发生器。它们适用于需要高精度计时或PWM控制的应用程序。原创 2023-10-25 11:58:30 · 1731 阅读 · 0 评论 -
STM32 定时器介绍--通用、高级定时器
前面文章中说过,STM32F103系列单片机中除了有系统定时器SysTick外,还有2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7。通用定时器的功能在高级定时器中都存在,不做赘述,这篇文章主要介绍STM32中的高级定时器。对于系统定时器SysTick和基本定时器的介绍分别如下:原创 2023-09-26 16:48:03 · 1413 阅读 · 0 评论 -
STM32 定时器介绍--基本定时器
在我之前文章中说过一个系统定时器SysTick,它存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。而今天介绍的STM32定时器是相当于一个外设,功能更加丰富全面。基本定时器(TIM6和TIM7)、通用定时器(TIM2、TIM3、TIM4和TIM5)、高级定时器(TIM1和TIM8)功能:基本定时器:只能实现定时的功能通用定时器:定时、输出比较、输入捕获、互补输出高级定时器:包含了基本定时器和通用定时器的所有功能。原创 2023-09-22 21:21:21 · 534 阅读 · 0 评论 -
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 · 14966 阅读 · 15 评论 -
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 · 3431 阅读 · 3 评论 -
STM32 串行FLASH文件系统FatFs
FatFs文件系统源码:doc文件夹里面是一些使用帮助文档;在src是FatFs文件系统的源代码。integer.h:文件中包含了一些数值类型定义(typedef)。diskio.c:包含底层存储介质的操作函数,这些函数需要用户自己实现,主要添加底层驱动函数。ff.c: FatFs核心文件,文件管理的实现方法。该文件独立于底层介质操作文件的函数,利用这些函数实现文件的读写。原创 2022-12-21 11:30:26 · 2459 阅读 · 0 评论 -
Keil 学习中常见的问题记录,持续更新中...
记录在我学习stm32过程中遇到的错误与警告。原创 2022-10-29 22:11:43 · 972 阅读 · 0 评论 -
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 · 2720 阅读 · 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 · 3805 阅读 · 0 评论 -
STM32 常用存储器介绍
易失性:掉电是否正常保存数据。丢失:易失性。但是,非易失性存储器读写的速度远远慢于易失性存储器。举个例子:写好的数据没有保存,电脑就会暂时将其放在易失性存储器(电脑是DRAM,STM32mini板子里面是SRAM)里面,因为CPU是不具备存储能力的,等到下次开机打开的时候,这些数据就不会存在。而我们数据保存之后就是放在了非易失性存储器(硬盘)里面,下次开机打开的时候还是存在的。原创 2022-10-22 16:24:50 · 1745 阅读 · 0 评论 -
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 · 496 阅读 · 0 评论 -
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 · 4048 阅读 · 1 评论 -
STM32 通信的基本概念
串口型设备(USART):WIFI、GPS、GSNIIC型设备:OLED、EEPROMSPI型设备:公交卡、FLASHFSMC型设备:液晶、内存这些设备接口都叫做通信的协议,这些协议都有些公共部分,就是以下四点。目录一、分类方式1.串行通讯与并行通讯2.全双工、半双工、单工3.同步与异步二、通信的速率:原创 2022-10-01 19:28:32 · 341 阅读 · 0 评论 -
STM32 系统定时器--SysTick
SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中。所有的Cortex-M内核的单片机都具有这个定时器。通过系统定时器,我们可以实现精准的软件延时(毫秒、微秒级)。原创 2022-09-17 18:24:48 · 5449 阅读 · 0 评论 -
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 · 15801 阅读 · 0 评论 -
STM32 复位时钟控制—RCC
时钟分为系统时钟,外设时钟,我们今天来看一下系统时钟。stm32的系统时钟由固件库配置好,不需要修改,我们了解认识一下,并学会修改使用。目录(1)系统时钟介绍(8个部分)(2)程序分析1.用HSE配置系统时钟2.用HIS配置系统时钟...原创 2022-08-28 22:21:23 · 1103 阅读 · 0 评论 -
STM32 固件库初应用--点灯(输出)、按键(输入)
目录一、用固件库点亮LED灯——输出(1)点亮灯(2)移植到其他板子二、按键检测——输入关于固件库的应用,我们从输入和输出两个角度来进行练习,外设都以常见的GPIO口为例。原创 2022-08-22 23:48:58 · 722 阅读 · 0 评论 -
STM32 固件库简介、工程模板创建保姆级教程
我们在一开始创建工程的时候,创建了一个.h文件,用于存放寄存器映射的代码,相当于51的。现在就写这个.h文件,以方便使用中直接引用赋值。还是以GPIO口为例。原创 2022-08-20 19:04:38 · 1428 阅读 · 0 评论 -
STM32 一灯大师——寄存器点亮流水灯
学习51我们从最简单的点灯开始,同样32也是,首先我们从最简单的寄存器控制点亮LED开始。1、配置端口输出数据寄存器(ODR)控制LED灯:给PC2/PC3输出低电平,LED灯亮;给PC2/PC3输出高电平,LED灯会灭。...原创 2022-08-18 16:09:20 · 2528 阅读 · 5 评论 -
STM32:寄存器、存储器
1.什么是存储器映射?2.什么是寄存器映射?3.C语言对寄存器的封装原创 2022-06-28 21:36:10 · 1065 阅读 · 0 评论