- 博客(20)
- 收藏
- 关注
原创 Flash闪存
STM32系列的Flash包含程序储存器、系统储存器和选项字节,通过闪存存储器接口(外设)可以对ROM 起始地址 存储器0x0800 0000 程序储存器Flash0x1FFF F000 系统储存器0x1FFF F800 选项字节RAM 起始地址 存储器0x2000 0000 运行内存SRAM0x4000 0000 外设寄存器0xE000 0000 内核外设寄存器。
2024-10-09 22:13:40 466
原创 独立看门狗(IWDG)与窗口看门狗(WWDG)
看门狗可以检测程序的运行状态,当程序出现设计漏洞,硬件故障,电磁干扰等原因,出现卡死或跑飞等现象,看门狗能及时复位程序,避免程序长时间罢工保证安全性可靠性看门狗本质上是一个定时器,只能固定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路自动执行复位信号STM32内置两个看门狗:独立看门狗IWDG,独立工作对时间精度要求低窗口看门狗WWDG,要求看门狗在精确计时窗口起作用。
2024-10-08 17:51:11 582
原创 PWR电源控制
PWR负责管理STM32內部时钟的电源供电部分,可以实现可编程电压检测器和低功耗模式的功能。可编程电压检测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阈值以下或上升到PVD阈值之上时,PVD会触发中断,用于执行紧急关闭任务低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)、和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备时间。
2024-10-08 12:56:23 652
原创 RTC定时时钟
RTC是一个独立的定时器,可谓系统提供时钟和日历功能RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD断电后可借助VBAT供电继续走时间,如果没有备用电源主电源掉电数据维持不了可对应Unix时间戳的秒计数器可配置不同频率的输入时钟HSE时钟除以128(通常为8MHz/28)LSE振荡器时钟(通常为32.768KHz)LSI振荡器时钟(40KHz)HSE=高速外部时钟信号HSI=高速内部时钟信号LSE=低速外部时钟信号LSI=低速内部时钟信号。
2024-10-07 10:46:10 1768 1
原创 BKP读写备份寄存器
BKP备份寄存器:可用于存储用户应用程序数据.VBAT:VDD电源被切由VBAT(备用电池电源)供电。TAMPER引脚:可以产生的侵入事件将备份寄存器内容清除RTC引脚:输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲BKP容量:20字节(中容量、小容量)/84字节(大容量、互联型)
2024-10-06 21:50:05 473
原创 硬件SPI读写W25Q64
STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时序生成、数据收发等共功能可配置8/16位数据帧、高位先行/低位先行时钟频率:fpclk/(2,4,8,16,32,64,128,256)可精简为半双工/单工通信支持DMA/兼容I2S(数字音频传输协议。
2024-10-06 11:13:16 600
原创 软件SPI读写W25Q64
SPI是摩托罗拉公司开发的一种通用数据总线SPI相较于I2C来说传输速度更快可以达到80MHz,但是SPI容易浪费资源SPI是同步,全双工四根通信线:SCK引脚用来提供时钟线;MOSI用于主机向从机发送的线路(主机输出,从机输入),MISO用于主机向从机接收的线路,MOSI+MISO=SDA;SS从机选择线支持总线挂载多设备(一主多从)当SPI主机与多个从机通信时,置SS低电平可以通信,置SS高电平不能通信,同一时间只有一个从机可以运行,如果有多个就会造成数据冲突。
2024-10-06 00:20:05 836
原创 硬件I2C读写MPU6050
stm32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能控制寄存器CR 数据寄存器DR 状态寄存器SR硬件I2C流程与软件基本一致。
2024-10-05 11:29:42 516
原创 软件I2C读写MPU6050
MPU6050是一个六轴姿态传感器,常用于平衡车、飞行器等检测自身姿态的场景。3轴加速度计:测量X、Y、Z轴的加速度3轴陀螺仪传感器:测量X、Y、Z轴的角速度MPU6050参数16位ADC采集传感器模拟信号,范围:-32768 ~ 32767(AD与加速度以及陀螺仪成比例)加速度计满量程:+-2,+-4,+-8,+-16(g) 也就是重力加速度 1g=9.8m/s*s陀螺仪满量程:+-250,+-500,+-1000,+-2000(°/s)
2024-10-04 14:22:30 1410
原创 串口发送Hex数据包和文本数据包
HEX数据包数据直出,解析简单文本数据包需要先解析成编码,解析复杂流程就是包头-数据-包尾文本数据包可以与开关灯实验结合。
2024-10-03 15:53:10 373
原创 USART串口发送与串口接收
通信的目的就是将一个设备的数据发送给另一个设备,也就可以使单片机和单片机、单片机和电脑、单片机和模块互相通信同步通信:要求接收端和发送端频率保持一致,发送端发送数据,接收端通过同步时钟信号接受数据异步通信:不要求接受端发送端时钟同步,发送端发送完可以经过任意时间发送下一个字节.USART同步/异步收发器:可以根据数据寄存器字节数据生成数据帧时序,从TX发送出去;也可以自动接收到RX引脚,拼接成字节数据,存入数据寄存器。
2024-10-03 14:40:42 764
原创 DMA数据转运
DMA直接寄存器数据转运就是将数据在外设与寄存器,寄存器与寄存器之间来回转运有12个独立可配置通道:DMA1(7个) DMA2(5个).数据转运可以是外设寄存器到存储器,或者存储器内部的Flash到SRAM以及SRAM到SRAM.因为Flash是只读的所以不能进行SRAM到Flash,或者Flash到Flash的转运用const修饰的变量就只能读不能写会存入Flash中80开头的地址是Flash20开头的地址是SRAM。
2024-10-02 18:34:01 696
原创 ADC单通道与多通道
ADC就是将模拟数值转化成数字ADC时钟分频2/4/6/8对应就是72M/2 72M/4 72M/6 72M/8即36M 18M 12M 9MADC_Mode_ALN模拟输入模式是ADC专属模式。
2024-10-02 13:54:14 682
原创 TIM旋转编码器接口测速
编码器通过旋转产生的正交脉冲,自动控制CNT自增自减。每个高级定时器和通用定时器都拥有1个编码器接口,可以通过改变极性或者引脚方向来改变编码器正转反转方向。
2024-10-02 09:35:03 294
原创 TIM输入捕获(IC)
IC输入捕获就是接收到输入信号,将当前CNT的值锁入CCR寄存器中,用于测量频率占空比,脉冲间隔,点平持续时间等参数每个高级定时器和通用定时器有4个输入捕获通道可配置PWMI模式同时测量频率和占空比//PSC函数//CCR函数。
2024-10-01 21:27:09 395
原创 TIM输出比较(OC)
OC输出比较就是通过对比CNT计数器与CCR寄存器的值输出高低电平以此频率以及占空比等PWM波形.每个高级定时器和通用定时器都有4个OC输出比较通道OC1-OC4CK_PSC一般72M 1M= 1000000BPWM频率:Freq = CK_PSC/(PSC+1)/(ARR+1)PWM占空比:Duty = CCR/(ARR+1)PWM分辨率:Reso = 1/(ARR+1)实际中通过PWM可以调节脉冲宽度以此提高系统稳定性,PWM占空比可以让你的灯更亮或者更暗,以及改变角度大小等等。
2024-10-01 17:43:43 406
原创 TIM定时中断
TIM定时器就是对输入的时钟进行计数,计数溢出进行中断CK_PSC一般为72M 1MB = 1024kb 1kb=1024bARR计数周期 PSC预分频器计数器溢出频率CK_PSC/PSC/ARR计数器计数频率CK_PSC/PSC。
2024-10-01 11:49:10 262
原创 GPIO输入输出
模拟输入(GPIO_Mode_AIN):将物理信号(例如:声音、光线等)转换成模拟数字,多用于ADC模数转换。浮空输入(GPIO_Mode_IN_FLOATING):一般指输入端口没有固定的电平值。下拉输入(GPIO_Mode_IPD):当输入端口没有输入高电平时,输入端口一直保持低电平。上拉输入(GPIO_Mode_IPU):当输入端口没有输入低电平时,输入端口一直保持高电平开漏输出(GPIO_Mode_Out_OD):输出端口可以输出低电平。
2024-09-30 16:41:11 1129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人