- 博客(19)
- 收藏
- 关注
原创 电源控制PWR
STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。POR/PDR 监控器、PVD 监控器。
2024-08-05 16:47:26
240
原创 IIC总线
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器以及其外围设备。它是由数据线 SDA 和时钟线 SCL 构成的串行总线,可发送和接收数据,在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送。
2024-02-06 16:07:12
846
原创 DAC数模转换
数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。
2024-02-04 18:31:48
1437
原创 ADC模数转换器
如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。阀值位于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。采样保持:将连续的模拟量转化为离散的数字量,比如:采样电压信号,采样一次就得到一个脉冲电压。ADC_SQRX寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。通道上执行单次转换。位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。
2024-02-02 20:17:45
1202
原创 低功耗模式
调用 HAL_PWR_ConfigPVD 函数配置 PVD,包括检测电压级别、使用中断线触发方式等。PVD 中断服务函数为 PVD _IRQHandler,当发生中断的时候,程序就会执行中断服务函数。PWR 时 钟 的 初 始 化 , 用__HAL_RCC_PWR_CLK_ENABLE 函数实现。通过一个按键作为中断触发源,需要配置一个IO口,使能时钟、外部中断模式、中断优先级等。通过一个按键作为中断触发源,需要配置一个IO口,使能时钟、外部中断模式、中断优先级等。
2024-02-02 15:31:13
1022
原创 DMA直接存储器访问
直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。①在发生一个事件后,外设向DMA控制器发送一个请求信号。DMA控制器根据通道的优先权处理请求。
2024-02-02 11:39:48
337
原创 RTC实时时钟
实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。
2024-01-30 15:57:24
955
1
原创 定时器TIME
stm32f103有2个基本定时器(TIM6、TIM7)、4个通用定时器(TIM2~TIM5)、2个高级定时器(TIM1、TIM8),这些定时器完全独立。
2024-01-29 14:16:58
983
原创 看门狗(IWDG、WWDG)
窗口看门狗的上限值和下限值,上限值由W[6:0]用户设置,下限值是0x40。因为WWDG_CR的T6位为0的话,就会产生复位,所以最小值是0x40。窗口看门狗,之所以成为窗口看门狗,是因为喂狗的时期必须在窗口时间内喂狗,否则狗叫。①当递减计数器的值从0x40减到0x3f时(WWDG_CR的T6位跳变为0)。解释说明:T[5:0]+1,加1是因为0x40跳变到0x3f相差1个计数时间。当CNT > W[6:0]时,不允许刷新T[6:0],否则产生复位信号;当CNT == 0x3f时,即T6为0,产生复位。
2024-01-23 12:32:07
400
原创 USART串口
第9位是否有效由USART_CR1寄存器的M位决定,当M位为0则表示8位数据字长;USARTDIV存放在USART_BRR寄存器的低16位,DIV_Mantissa[11:0]存放整数部分,DIV_Fractionp[3:0]存放小数部分。fck是给串口的时钟(USART2\3\4\5的时钟源是PCLK1,USART1的时钟源是PCLK2)当使能校验位(USART_CR1中PCE位置1)进行发送数据,MSB的值是校验位的值。SW_RX:数据接收引脚,属于内部引脚,用于智能卡模式。TX:发送数据输出引脚。
2024-01-22 19:15:16
1223
原创 NVIC和EXTI
M3内核都是支持256个中断,其中16个系统中断和240个外部中断,并且具有 256 级的可编程中断设置。stm32f103zet6系统中断有10个,外部中断60个。如下图,系统中断10个:NVIC寄存器。
2024-01-19 17:31:15
875
原创 各个设备抓取HCI,更新中
https://download.developer.apple.com/iOS/iOS_Logs/Bluetooth_Logging_Instructions.pdf
2024-01-16 11:54:27
639
原创 GPIO端口
gpio及通用输入输出端口;负责输入输出功能。按组分配,每组16个。stm32f103zet6 有A~G七组gpio口。注意:有FT标志,标识可容忍5v;
2024-01-15 20:01:47
945
原创 stm32启动过程分析
stm32有三种复位方式:上电复位、硬件复位、软件复位;7、调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数。2、初始化程序计数器指针 PC = Reset_Handler。6、配置系统时钟,通过调用 SystemInit 函数(可选)启动文件用汇编编写,是系统上电复位后第一个执行的程序。1、初始化堆栈指针 SP = _initial_sp。5、配置外部 SRAM 作为数据存储器(可选)3、设置堆和栈的大小。4、初始化中断向量表。
2024-01-08 11:02:23
413
原创 寄存器相关内容
寄存器是一种特殊的内存,我们可以通过读写这些内存来让单片机执行各种功能。stm32的寄存器是32位的,分为以下几类:我们需要操作这些寄存器,那么就需要知道这些寄存器的地址,这些寄存器本身没有地址概念,所以就需要将这些寄存器进行地址分配,这个地址分配的过程叫做存储器映射。存储器映射生产厂商已经为我们分配好了。
2024-01-04 18:28:48
345
原创 群晖docker安装第三方服务后,通过反向代理,直接通过域名登录服务。
群晖安装docker,用来安装第三方服务后,通过反向代理,直接通过域名登录服务。
2022-09-23 15:58:23
2542
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人