
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
系统滴答定时器(SysTick)是ARM Cortex-M内核内置的24位递减计数器,主要用于精确延时和时间基准服务。本文解析了SysTick的基本原理和结构,包括其24位递减计数机制、自动重载特性及关键寄存器配置。重点讨论了两种延时实现方式:阻塞式通过轮询COUNTFLAG标志实现简单延时,非阻塞式利用中断机制避免CPU空转。同时分析了不同时钟源选择对精度的影响,以及在实际应用中需注意的延时与中

本文深入解析了LIN总线通信的五种帧类型及其应用场景。LIN总线采用主从式单线通信,通过调度表实现有序传输。无条件帧是最基础类型,用于主机查询从机数据或发送命令;事件触发帧优化多从机事件响应,仅状态变化的从机回复;诊断帧使用专用PID实现深度诊断功能。文章结合车窗控制实例,展示了如何通过不同帧类型实现防夹功能检测和故障诊断,体现了LIN协议在汽车电子系统中的高效协同机制。
STM32睡眠模式详解 摘要:本文详细分析了STM32三种低功耗模式特性,重点解析睡眠模式的实现机制。睡眠模式功耗为mA级,唤醒时间最短(μs级),保持外设运行状态,适合短暂待机场景。进入睡眠模式需清除SLEEPDEEP位,可选WFI/WFE两种唤醒方式。WFI通过中断唤醒,WFE提供SEVONPEND和纯事件两种唤醒机制,后者具有最低延迟(5-8周期)。文章对比了不同唤醒方式的配置复杂度、功耗表

摘要: ARM Linker错误L6200E通常由全局变量在头文件中重复定义引起。示例中,shared.h直接定义变量导致main.o和sensor.o各自生成变量副本,链接时冲突。正确做法是:1)在头文件用extern声明变量(如extern uint32_t system_uptime_ms;);2)在单一源文件(如main.c)中定义变量。遵循"头文件声明,源文件定义"原
I/O 端口的默认状态在复位期间及复位刚刚完成后,复用功能尚未激活,I/O 端口被配置为输入浮空模式。这意味着即使没有进行 GPIO 配置,ADC 仍然可以从这些引脚读取数据。然而,这种模式下,引脚的电平状态可能不稳定,容易受到外部干扰。浮空输入模式的特性浮空输入模式下,引脚未连接到任何外部电路,处于高阻态,电平状态不确定。这种方式下,引脚可能因为干扰信号的存在而产生误触发,因此应尽量避免使用。模

输入输出压差(Dropout Voltage)线性调整率(Line regulation)负载调整率(Load Regulation)电源抑制比(PSRR)瞬态响应(Transient response)静态电流(Supply Pin Current )1. 输入输出压差(Dropout Voltage)2. 线性调整率(Line regulation)线性调整率衡量了LDO(低压差线性稳压器)在

当外部中断检测到引脚电平变化时,正常的流程是选择触发中断,但是在STM32中,也可以选择触发一个事件,如果选择触发事件,那外部中断的信号就不会通向CPU了,而是通向其它外设,用来触发其它外设的操作,比如触发ADC转换、触发DMA等。,是CPU的小助手。STM32的中断非常多,如果把这些中断全都接到CPU上,那CPU还得引出很多线进行适配,设计上就很麻烦,并且如果很多中断同时申请,或者中断很多产生了

单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。

为什么在72MHz计数时钟下可以实现最大59.65s的定时?72M/65536/65536,得到的是中断频率,然后取倒数,就是59.65秒多,大家可以自己算一下。详细解释:在定时器中,预分频器和计数器都是16位的,所以它们的最大值是65535,而不是65536。预分频器的最大值决定了计数时钟的频率,而计数器的最大值决定了定时器的最大计数周期。因此,如果预分频器和计数器的最大值都设置为65535,那

如标题,只是一个简单的顺序表的插入和删除,希望能帮到各位初学的同学。只起参考作用








