《嵌入式》STM32开发笔记
文章平均质量分 96
Yngz_Miao
这个作者很懒,什么都没留下…
展开
-
【STM32】SysTick滴答定时器(delay延时函数讲解)
STM32F1xx官方资料:《Cortex-M3权威指南-中文》-第8章最后一个小节:Systick定时器 SysTick定时器Systick定时器,是一个简单的定时器,对于CM3、CM4内核芯片,都有Systick定时器。Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM...原创 2018-04-09 13:51:56 · 52621 阅读 · 12 评论 -
【STM32】通用定时器的PWM输出(实例:PWM输出)
STM32F1xx官方资料:《STM32中文参考手册V10》-第14章 通用定时器 通用定时器PWM概述STM32定时器输出通道引脚这里以TIM3为例来讲解。STM32的通用定时器分为TIM2、TIM3、TIM4、TIM5,而每个定时器都有独立的4个通道可以用来作为:输入捕获、输出比较、PWM输出、单脉冲模式输出等。STM32的定时器除了TIM6和TIM7(基本定时器...原创 2018-04-19 15:22:43 · 180221 阅读 · 31 评论 -
【STM32】通用定时器的输入捕获(实例:输入捕获)
STM32F1xx官方资料:《STM32中文参考手册V10》-第14章 通用定时器 通用定时器输入捕获概述输入捕获的工作原理在通用定时器框图中,主要涉及到最顶上的一部分(计数时钟的选择)、中间部分(时基单元)、左下部分(输入捕获)这三个部分。这里主要讲解一下左下部分(输入捕获),其他两个部分可以参考文章:【STM32】通用定时器的基本原理(实例:定时器中断)。输入捕获...原创 2018-04-20 10:30:16 · 130434 阅读 · 16 评论 -
【STM32】RTC实时时钟概述、寄存器、库函数(RTC一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第16章 实时时钟(RTC) RTC实时时钟RTC实时时钟简介实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RT...原创 2018-04-23 20:40:36 · 25465 阅读 · 0 评论 -
【STM32】电源控制、低功耗模式(实例:待机模式)
STM32F1xx官方资料:《STM32中文参考手册V10》-第4章4.3小节 低功耗模式 STM32的电源控制STM32的电源框图STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。 当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。下面是STM32的电源框图:注意:框图中的VDDA和VSSA必...原创 2018-04-24 19:21:07 · 30715 阅读 · 2 评论 -
【STM32】ADC的基本原理、寄存器(超基础、详细版)
STM32F1xx官方资料:《STM32中文参考手册V10》-第11章 模拟/数字转换(ADC) ADC的基本介绍ADC的基本定义Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。ADC的主要特征12位...原创 2018-04-25 18:49:54 · 137493 阅读 · 21 评论 -
【STM32】ADC库函数、一般步骤详解(实例:内部温度传感器实验)
STM32F1xx官方资料:《STM32中文参考手册V10》-第11章 模拟/数字转换(ADC)《STM32中文参考手册V10》-第11章 第11.10小节 温度传感器 ADC采样数值如何STM32的ADC模块,得到接入ADC管脚上的实际电压值?会读到什么值由于STM32的ADC是12位逐次逼近型的模拟数字转换器,也就是说ADC模块读到的数据是12位的数据。因此:ST...原创 2018-04-25 21:38:13 · 105377 阅读 · 5 评论 -
【STM32】DAC基本原理、寄存器、库函数(DAC一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第12章 数字模拟转换DAC DAC的基本介绍DAC的基本定义Digital-to-Analog Converter的缩写。指数/模转换器或者数字/模拟转换器。是指将离散的数字信号转换为连续变量的模拟信号的器件。典型的数字模拟转换器将表示一定比例电压值的数字信号转换为模拟信号。STM32的DAC模块是12位...原创 2018-04-27 15:41:45 · 99147 阅读 · 0 评论 -
【STM32】PWM DAC基本原理(实验:PWM实现DAC)
虽然STM32F103ZET6具有内部DAC,但是也仅仅只有两条DAC通道,并且STM32还有其他的很多型号是没有DAC的。通常情况下,采用专用的D/A芯片来实现,但是这样就会带来成本的增加。不过STM32所有的芯片都有PWM输出,并且PWM输出通道很多,资源丰富。因此,我们可以使用PWM+简单的RC滤波来实现DAC的输出从而节省成本。 PWM DACPWM DAC的构成原理P...原创 2018-04-28 19:21:57 · 44882 阅读 · 8 评论 -
【STM32】DMA基本原理、寄存器、库函数(DMA一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第10章 DMA控制器DMA的基本介绍DMA的基本定义DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。D...原创 2018-05-14 10:02:18 · 67873 阅读 · 8 评论 -
【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)
IIC的基本介绍IIC的简介IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10...原创 2018-05-15 09:43:51 · 147783 阅读 · 29 评论 -
【STM32】SPI的基本原理、库函数(SPI一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第23章 串行外设接口SPI SPI的基本介绍SPI的简介SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和...原创 2018-05-16 14:51:34 · 148477 阅读 · 23 评论 -
【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)
TIM+ADC+DMA原理一般情况下,当我们需要进行采样的时候,需要用到ADC。例如:需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms)。本文提供的解决方案是:使用ADC的定时器触发ADC单次转换的功能,然后使用DMA进行数据的搬运!这样只要设置好定时器的触发间隔,就能实现ADC定时采样转换的功能(即采样速率),然后可以在程序的死循环中一直检测DMA转换完成标志,然后进行数据的读取...原创 2019-05-07 16:45:17 · 135663 阅读 · 62 评论 -
【STM32】通用定时器的基本原理(实例:定时器中断)
STM32F1xx官方资料:《STM32中文参考手册V10》-第14章通用定时器 STM32的定时器STM32F103ZET6一共有8个定时器,其中分别为:高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。他们之间的区别情况见下表:STM32定时器的区别 定时器种类 位数 计数器模式...原创 2018-04-18 10:09:30 · 106849 阅读 · 11 评论 -
【STM32】窗口看门狗概述、寄存器、库函数(WWDG一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第18章 窗口看门狗 窗口看门狗概述窗口看门狗的定义窗口看门狗之所以称为窗口,就是因为其喂狗时间是一个有上下限的范围内(窗口),可以通过设定相关寄存器,设定其上限时间(但是下限是固定的0x3F)。也就是说:喂狗的时间不能过早,也不能过晚。而对比与独立看门狗,独立看门狗限制喂狗时间在0-x内,x由相关RLR寄存器决定...原创 2018-04-17 09:33:35 · 14641 阅读 · 2 评论 -
【STM32】MDK中寄存器地址名称映射分析
对于MCU,一切底层配置,最终都是在配置寄存器。STM32F1xx官方资料:《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) 51单片机访问地址51单片机经常会引用一个reg51.h的头文件。下面看看它是怎么把名字和寄存器联系在一起的:sfr p0=0x80;p0=0x00;sfr是一种扩充数据类型,点用一个内存单位,值域为0-255....原创 2018-04-04 18:11:07 · 11834 阅读 · 3 评论 -
【STM32】MDK5打开MDK4项目工程时出现的不兼容及解决方法
问题描述最近在使用MDK5的时候发现了一个问题,先看一下现有的MDK的版本信息:在用MDK5打开MDK4版本的项目工程的时候,通常会跳出一个窗口Using an MDK Version 4 Project:This is an MDK version 4 project ,require Device support for Cortex-M based devices. ...原创 2018-03-29 15:06:45 · 56938 阅读 · 17 评论 -
【STM32】STM32时钟系统和SystemInit函数解读
时钟系统就是CPU的脉搏,像人的心跳一样,重要性不言而喻。由于STM32本身十分复杂,外设非常多,但并不是所有的外设都需要系统时钟那么高的频率,比如看门狗以及RTC只需要几十k的时钟即可。并且,同一个电路,时钟越快功耗越快,同时抗电磁干扰能力也就越弱,所以较为复杂的MCU都是采用多时钟源的方法来解决这些问题。STM32F1xx官方资料:《STM32中文参考手册V10》-第六章 复位和时钟控制...原创 2018-04-05 16:33:56 · 13053 阅读 · 1 评论 -
【STM32】STM32端口复用和重映射(AFIO辅助功能时钟)
STM32F1xx官方资料:《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) 端口复用功能端口复用的定义STM32有许多的内置外设(如串口、ADC、DCA等等),这些外设的外部引脚都是和GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫复用。详细的可以参考《STM32F103ZE...原创 2018-04-06 18:32:56 · 31156 阅读 · 2 评论 -
【STM32】STM32固件库(标准外设库)
标准外设库概述STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少开发者开发使用片内外设的时间,进而降低开发成本。每个外设驱动都由一组函数组成,这...原创 2018-04-13 13:13:26 · 23462 阅读 · 0 评论 -
【STM32】NVIC中断优先级管理(中断向量表)
STM32F1xx官方资料:《STM32中文参考手册V10》-第9章 中断和事件Cortex-M3内核支持256个中断,其中包含了16个内核中断(异常)和240个外部中断,并且具有256级的可编程中断设置。但是,STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断(异常)和68个可屏蔽中断,具有16级可编程的中断优先级。而STM32F10...原创 2018-04-08 19:55:22 · 50190 阅读 · 6 评论 -
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
STM32F1xx官方资料:《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册(datasheet) STM32的GPIO介绍STM32引脚说明GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。STM32F103ZET6芯片...原创 2018-04-10 10:20:05 · 132976 阅读 · 34 评论 -
【STM32】GPIO的相关配置寄存器、库函数、位操作(实例:STM32控制跑马灯)
STM32F1xx官方资料:《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO)《Cortex-M3权威指南(中文)》第5章 位带操作 硬件连接假设跑马灯实验的硬件连接如上图所示,LED0连接PB5,LED1连接PE5。由于在LED的另一端是VCC3.3,所以当PB5或PE5为低电平的时候,LED灯会亮。此时GPIO应采取推挽输出的模式。 ...原创 2018-04-11 22:25:43 · 18072 阅读 · 3 评论 -
【STM32】串口通信基本原理(超基础、详细版)
STM32F1xx官方资料:《STM32中文参考手册V10》-第25章通用同步异步收发器(USART)通信接口背景知识设备之间通信的方式一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。它们的区别是:并、串行通信的区别 并行通信 串行通信 传输原理 数据各个位同时传输 数据按位顺序传输 优点 速度快 占用引脚资...原创 2018-04-12 13:26:02 · 241460 阅读 · 31 评论 -
【STM32】串口相关配置寄存器、库函数(UART一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第25章通用同步异步收发器(USART) 串口相关配置寄存器状态寄存器(USART_SR)状态寄存器适用于检测串口此时所处的状态。它能够检测到的状态有:发送寄存器空位、发送完成位、读数据寄存器非空位、检测到主线空闲位、过载错误为等等。这边主要关注两个位:RXNE和TC(第5、6两位)。RXNE(读数据寄存...原创 2018-04-12 13:26:25 · 48130 阅读 · 2 评论 -
【STM32】外部中断概述、寄存器、库函数(EXTI一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第9章 中断和事件 外部中断概述外部中断(EXTI),和在【STM32】NVIC中断优先级管理(中断向量表) 中讲述的CM3内核的外部中断不同。特指的是,在中断向量表中的EXTI的外部中断。STM32的每个IO都可以作为外部中断输入。外部中断线STM32的中断控制器支持19个外部中断、事件请求(也就是19条外部...原创 2018-04-14 14:49:53 · 19027 阅读 · 3 评论 -
【STM32】独立看门狗概述、寄存器、库函数(IWDG一般步骤)
STM32F1xx官方资料:《STM32中文参考手册V10》-第17章 独立看门狗 独立看门狗概述看门狗的定义 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环;或者程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。所以出于对单片机运行状态进行实时监测的考虑,便产...原创 2018-04-16 20:04:03 · 13019 阅读 · 0 评论 -
【STM32】使用STM32提供的DSP库进行FFT(附详细代码)
最近,因为项目需要在STM32F103系列处理器上,对采集的音频信号进行FFT运算,然而STM32F103毕竟不是STM32F4系列的处理器,对于一般的FFT运算程序还是比较缓慢的。幸亏官方提供了针对FFT的官方库,但是去官网找了半天居然找不到那个库的下载,好像官方早就把那个库下架了,估计是为了给带DSP指令集的F4系列让路。然后就只好从别人的项目中把这个官方库给扒出来了……FFT官方库的使...原创 2019-05-12 15:42:41 · 127414 阅读 · 43 评论