自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 单片机I/O口的作用和配置模式

读取外部信号:按键检测、传感器状态(如高低电平)中断触发:配置为边沿/电平触发(如按键唤醒)

2025-04-03 09:47:46 70

原创 while轮询下,定义两个宏,实现简单的定时任务调度功能

其中:定义一个任务的开始,并检查是否达到设定的执行间隔。tdelay(任务执行的间隔时间,单位取决于的基准)。定义一个静态变量TickPrv,用于记录任务上一次执行的时间点(初始值为 0)。检查当前时间与上一次执行时间TickPrv的差值是否超过设定的间隔tdelay。如果满足条件,更新TickPrv为当前时间,并执行后续代码(直到Task_End():标记任务的结束,闭合Task_Begin中的if语句块。

2025-03-31 12:04:48 301

原创 STM32的时钟树总结

STM32的时钟系统包括HSI、HSE、LSI、LSE和PLL五个时钟源。HSI是8MHz的内部RC振荡器,不太稳定,默认是开启的。HSE是外部石英/陶瓷谐振器,范围4-16MHz,默认是关闭的,一般使用HSE作为时钟源,如果发生故障,会自动切换HSI。LSI是40kHz的内部RC,用于IWDG和RTC。LSE是32.786kHz的外部石英。PLL可以将HSI/2、HSE或HSE/2倍频,最高达到72MHz。系统时钟SYSCLK通过AHB分频器为CPU、内存等提供时钟源。

2025-03-28 15:05:22 714

原创 关于实时操作系统的几点

是 ARM 为 Cortex-M 系列微控制器提供的一个。它是的一部分,旨在为嵌入式开发者提供统一的 API,简化在不同 RTOS 之间的移植和开发。

2025-03-14 19:22:48 787

原创 硬件中断和软件中断的区别,以及工作原理和流程是怎样的?

硬件中断是由外部设备或硬件事件触发的异步信号,用于通知CPU需要处理某个事件。例如:键盘按下按键。网络数据包到达网卡。定时器超时。软件中断是由程序主动触发的同步事件,通常用于实现系统调用、异常处理或任务切换。例如:在Linux中,用户程序通过软件中断(如int 0x80或syscall指令)请求内核服务。在嵌入式系统中,软件中断可以用于任务调度。

2025-03-06 16:16:50 925

原创 FreeRtos学习笔记2

FreeRTOS 的实现途径基于其轻量、模块化和可移植的设计理念,通过任务调度、同步机制、内存管理和硬件抽象层等技术,实现了高效的实时操作系统功能。其灵活的架构和丰富的扩展组件使其能够适应各种嵌入式应用场景。

2025-03-05 13:58:13 498

原创 关于FreeRTOS同步机制的学习笔记

如果需要任务同步或事件通知,使用二值信号量。如果需要管理多个资源,使用计数信号量。如果需要保护共享资源,并且需要避免优先级反转,使用互斥锁递归互斥锁适用于需要多次获取同一把锁的场景,比如递归函数调用或嵌套函数调用。使用递归互斥锁时,必须确保每次锁定后都有相应次数的解锁操作。和互斥锁一样,递归互斥锁也有优先级继承机制。2、优先级反转(Priority Inversion)定义优先级反转是指高优先级任务因为等待低优先级任务持有的资源而被阻塞,导致高优先级任务无法及时执行的现象。

2025-02-28 12:07:51 617

原创 关于FreeRTOS 使用双堆栈机制来调度任务的学习笔记

在 FreeRTOS 中,

2025-02-26 12:06:47 409

原创 C语言中的回调函数

回调函数就是一个通过函数指针调用的函数。即把函数指针作为参数传入另外一个函数,当这个指针被用来调用其所指向的函数时,该函数就是回调函数。模块之间相互独立,处于不同的层次,且存在相互调用的关系,通常在下层设置函数指针,在上层设置回调函数,以达到低层向上层传递数据。例如当下,我不想在中间层处理数据,而想把数据上传到应用层去处理,以保证代码的模块化。最近项目中有遇到回调函数,仅针对此次的应用场景做一个梳理~~2、回调函数的适用场景。

2025-02-21 11:22:05 170

原创 关于PWM的一点总结

最近项目中有利用STM32的定时器产生PWM方波,驱动喇叭报警,这里总结复习一下,方便自己查阅,话说好久没有码字了。PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制。PWM就是输出脉宽(即占空比)可调的方波信号。PWM的周期为T,脉宽为W,占空比D=W/T,通过调节PWM的脉宽进而调节功率。假设W是负载的有效工作时间,那么在一个周期T内,W越长相当于负载输出的功率越大,也就是D越大,输出功率越大。

2024-11-13 14:03:08 2113

原创 VDD,VSS,VDDA,VSSA,VBAT,VCC等傻傻分不清楚?

总的来说,VCC和VDD都是单片机中的电源电压,一般来说不用太刻意去区分,一般设计硬件的时候也没这么讲究。供电,过滤和屏蔽来自印刷电路板上的毛刺干扰,ADC的电源引脚为VDDA,独立的电源地VSSA。VREF+ 和 VREF- 代表了 ADC 能够转换的电压范围, 即ADC所能测量的电压范围就是VREF- ≤ Vin ≤ VREF+。当主电源 VDD 掉电以后,可以将电池或其他电源连接到VBAT 脚上,以保存备份寄存器的内容和维持RTC的功能。VCC经常连接到芯片的正极电源,也就是芯片的电源输入端。

2024-08-21 16:05:41 2066

原创 如何搭建keil环境?

不同型号芯片的支持包需要我们自己下载安装,打开“keil5安装包--packs”,里面有带几个版本的支持包,如果没有自己需要的,就去官网下载。3.2此时打开安装包里的“Kengen.exe”,复制CID到kengen,生成license的许可证号,步骤如下图。链接: https://pan.baidu.com/s/1YjWNFm_2Tw0hkf0G9wcN9w。今天有同事问我怎么搭建keil环境,我也是有点遗忘了,趁这个机会,复习一下。双击支持包安装,安装成功后打开keil,如图表示安装成功了。

2024-07-09 09:29:49 453

原创 SPI、I2C、UART三者有何不同?

UART是串行异步通信接口,它包括RS232、RS499、RS423、RS422和RS485等接口规范和 标准规范,即UART是串行异步通信口的总称。SPI、I2C和UART是三种常用的通信协议,属于不同设备之间进行数据传输。那三者之间又有何不同呢?首先我们要搞清楚几个名词:同步和异步、串行和并行、全双工半双工和单工。在工作中我用到RS232和RS485比较多。另外,传输距离和通信速率成反比关系。UART 通用串行异步收发器。

2024-06-28 11:18:03 468

原创 如何通过STM32内部参照电压VREFINT获取电压和电量?

64脚和小于64脚的型号,Vref+在芯片内部与VCC信号线相连,没有引到片外,这样AD的参考电压就是VCC上的电压。在ADC的外部参考电压波动,或因为Vref+在芯片内部与VCC相连而VCC变化的情况下,如果对于ADC测量的准确性要求不高时,可以使用这个内部参照电压得到ADC测量的电压值。就可以通过通道1的数字量获取到对应的模拟量了,即电压,VREFINT的模拟量 / VREFINT的数字量 = 要求的电压 / 此通道的数字量。以测量1通道的电压值为例,先读出参照电压的ADC测量结果,记为ADre;

2024-06-05 10:43:27 989

原创 对CR300的基础认识

关于CR300采集器的基础认识

2024-05-10 11:23:08 493 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除