
STM32
关于stm32的笔记
haha690
这个作者很懒,什么都没留下…
展开
-
单片机的位数
参与运算的寄存器的数据长度单片机的位数指CPU处理的数据的宽度,也就是CPU一次数据的吞吐量。比如同一条指令:MOV R0 R2在51单片机里面,R0和R2都是8位的,所以51的CPU一次只能处理8位数据。在ARM里面,R0和R2是32位的,所以ARM的CPU一次能处理32位数据。8位数据类型:32位数据类型1、有符号整型s8 占用1个byte,数据范围 -2^7 到 (2^7-1)s16 占用2个byte,数据范围 -2^15 到 (2^15-1)s32 占用 4个byte,数据范转载 2021-06-22 15:26:57 · 4259 阅读 · 0 评论 -
浮点运算的认识
浮点运算就是实数运算,包含小数运算。是相对于整数运算而言的。大多数MCU并没有专门的浮点数运算硬件支持单元,这使得浮点数运算效率极为低下,和整数运算比是几十、几百倍的速度差异,还极为耗费其他资源(包括内存等)。即使有浮点数运算单元支持,有时与整数运算比也是几倍速度差异。另外大多数MCU处理中,浮点数需求其实并不是那么强烈,很多可以采用工程计算手段处理为整数运算,由此要尽可能少用浮点运算。没有FPU的单片机在进行浮点数运算的时候先要把这个浮点数运算转换成定点数存储,再把这个定点数转换成指数的方式进行运算转载 2021-06-22 15:21:45 · 2572 阅读 · 2 评论 -
基于stm32的滤波器的总结
数字滤波器的类型有FIR(有限长冲击与IIR(无限长。离散数字系统中,滤波器的表述为差分方程。FIRFIR基本特性:FIR 滤波器永远是稳定的(系统只有零点);FIR 滤波器的冲激响应是有限长序列;FIR 滤波器的系统函数为多项式;FIR 滤波器具有线性相位。实现同样参数的滤波器,FIR比IIR需要的阶数高,因此计算量大。目前,FIR 数字滤波器的设计方法主要是建立在对理想滤波器频率特性做某种近似的基础上。设计方法有窗函数法,等波纹设计法(Equiripple)和最小二乘法 (Least原创 2021-05-17 23:48:47 · 6373 阅读 · 1 评论 -
EEPROM与FLASH
FLASH分两种:NOR FLASH和NAND FLASHnor flash的数据线和地址线分开,可以随机寻址,读取任一字节。nand flash的数据线和地址线共用,不可以随机寻址,只能按页读取。所有flash的擦除都是以块为单位。且每次写时,都要保证写的区域已经擦除。因为flash只能写0,只有擦除为全1后,才可以写数据。否则,写入的和读出来的不同。EEPROM 可以随机访问和修改任何一个字节,既能写0又能写1。相比于flash的读写方便的多。flash的用处:nor flash常用于程序存原创 2021-04-29 17:54:06 · 543 阅读 · 0 评论 -
stm32定时器概述
stm32的定时器分3类:基本定时器、通用定时器和高级定时器,其中通用定时器分两组:(TIM2-TIM5)和(TIM9-TIM14)。基本定时器(TIM6、TIM7)功能:基本定时和驱动DAC16位自动重装递增计数器16位可编程预分频器频率:84MHz中断源:计数器上溢更新中断通用定时器(TIM9到TIM14)16位自动重装递增计数器16位可编程预分频器TIM9和TIM12有两路单通道,其余TIM10、11、13、14都有一路单通道多定时器互联同步中断源:更新、输入捕获、输出比较T原创 2021-04-29 16:35:11 · 3482 阅读 · 0 评论 -
Keil下载程序或者点进魔法棒之后在点击别的就闪退的问题
keil编译程序没有问题,但是当下载程序,或者点进魔法棒之后,再点击别的按钮(比如点击debug下的settings)就闪退的解决办法:1、删除工程中的.uvoptx文件2、重新打开工程后,自行选择debug下的仿真器类型...原创 2021-02-08 16:55:47 · 2047 阅读 · 4 评论 -
stm32的systick(滴答定时器)实现精准延时
stm32具有systick定时器,该外设属于内核外设,时钟一般选择系统时钟的8分频。使能后,计数寄存器递减到0后,会自动重装值。需要注意的是滴答定时器的计数器是24位的,最大值为2^24(16,777,216)。(1)72MHz利用滴答定时器实现us级延时:72MHz/8=9Mhz//最大值:1864135usvoid delay_us(u32 i){ u32 temp; SysTick->LOAD=9*i; //设置重装数值 SysTick->VAL=原创 2020-12-11 21:21:07 · 4221 阅读 · 2 评论 -
按键检测状态机与按键消抖
独立按键检测的方法有:1、轮询法2、外部中断法3、定时器中断法4、定时器中断加状态机按键消抖:一、软件消抖1、延时消抖与二次判断,延时一般用10ms即可。轮询法与外部中断法使用。外部中断边沿触发不消抖的话会有多次触发的现象。2、利用定时器中断间隔来实现消抖。二、硬件消抖最简单的就是并联一个电容,一般使用104(0.1uf)电容。使用定时器中断的方法,不用使用延时或者死循环,减少了CPU的占用,适用于大程序。定时器中断取10ms。下面是状态机的程序,实际使用时,在定时器中断中调用,每1原创 2020-12-11 20:55:15 · 2613 阅读 · 1 评论 -
SRAM与DRAM的区别
SRAM与DRAM的区别SRAM是静态RAM,DRAM是动态RAM。SRAM的速度比DRAM快。DRAM用作内存比较多,SRAM用作cache比较多。DRAM需要不断地刷新电路来保存数据,否则内部的数据将会消失。因此功耗比SRAM大。SRAM存储一位需要花6个晶体管,而DRAM只需要花一个电容和一个晶体管。同容量,SRAM需要更多的晶体管,发热量也非常大。难以做成大容量的主存储器。通常只用在CPU、GPU中作为缓存,容量也只有几十K至几十M。cache追求的是速度所以选择SRAM,而内存则追求容量所原创 2020-10-21 19:18:51 · 9475 阅读 · 0 评论 -
stm32f103与stm32f407的引脚复用与重映射
stm32f103的AFIO:stm32f103的AFIO寄存器如下,使用前都要打开AFIO时钟:AFIO_MAPR:配置复用功能重映射AFIO_EXTICRX:配置外部中断线映射AFIO_EVCR: 配置EVENTOUT事件输出只有使用了AFIO的事件控制寄存器、AFIO的重映射功能以及外部中断(EXTI)控制寄存器才需要使用AFIO。1、当使用外部中断时,需要打开AFIO时钟。RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);然后原创 2020-12-09 22:10:27 · 13783 阅读 · 3 评论