- 博客(11)
- 收藏
- 关注
原创 C语言数据结构 -- 1.循环队列
队列是一种先进先出(FIFO)的线性数据结构,数据从队尾加入,从队首移除。循环队列是队列的优化实现,通过将存储空间视为环形结构,重复利用出队后释放的空间。文章详细介绍了如何使用C语言实现循环队列,包括数据结构的定义、队列的创建与销毁、入队与出队操作,以及判断队列是否为空或满的函数实现。还提供了完整的代码示例,包括头文件、实现文件和主测试文件,展示了如何创建、测试和销毁循环队列的过程。通过代码实现,可以清晰地理解循环队列的工作原理及其在编程中的应用。
2025-05-12 21:55:45
938
原创 STM32HAL库 -- 7.按键中断控制LED灯和蜂鸣器
通过上一个博客介绍的中断系统,来实现按键中断的的实验。笔者使用的开发板是STM32F103ZET6为MCU的正点原子精英板,读者可以使用自己的开发板来复现实验。开发板不是重点,重点是学习HAL库的使用。STM32HAL库 -- 6.中断系统。
2025-04-29 17:31:17
1271
原创 STM32HAL库 -- 6.中断系统
在嵌入式系统中,中断是一种非常重要的机制,它允许处理器在特定事件发生时暂停当前任务,转而执行相应的中断服务程序(ISR)。STM32 的中断系统由嵌套向量中断控制器(NVIC)和外部中断/事件控制器(EXTI)组成。本文将详细介绍 STM32 的中断系统、NVIC 和 EXTI。嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)在 STM32 微控制器中扮演着核心的中断管理角色。
2025-04-28 22:05:10
997
原创 STM32HAL库 -- 5.蜂鸣器报警
通过上一个博客介绍的HAL库操作GPIO的函数,来实现蜂鸣器的的实验。笔者使用的开发板是STM32F103ZET6为MCU的正点原子精英板,读者可以使用自己的开发板来复现实验。开发板不是重点,重点是学习HAL库的使用。STM32HAL库 -- 1.手把手创建HAL库工程模板STM32HAL库 -- 2.介绍外设GPIOSTM32HAL库 -- 3.介绍HAL库中操作GPIO的函数。
2025-04-22 14:28:51
1558
原创 STM32HAL库 -- 4.LED流水灯
LED(Light Emitting Diode),即发光二极管,是一种能够将电能转化为可见光的半导体器件。LED的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。当电流通过导线作用于这个晶片时,电子和空穴在PN结复合,能量以光子的形式释放出来,从而发出光芒。不同材料的半导体可以发出不同颜色的光,导通压降也不同。
2025-04-21 16:08:09
1189
原创 STM32HAL库 -- 2.介绍外设GPIO
GPIO(General Purpose Input/Output)是STM32微控制器中最基本的外设之一,用于控制外部设备,或者进行采集信息的外设,即进行数字信号的输入和输出。每个GPIO引脚都可以配置为输入或输出,并且可以设置为多种模式,如推挽输出、开漏输出、模拟输入等。这个外设按组分配,我们经常会看到GPIOA,GPIOB...这样的字眼,这个就是GPIO的A组,B组。每组最多有16个引脚,比如GPIO_PIN_1,GPIO_PIN_2,就是对应的GPIO引脚。
2025-04-14 01:15:40
876
原创 Linux文件IO -- 2.关闭文件close函数详解
在Linux系统中,close() 函数用于关闭一个已打开的文件描述符(File Descriptor),释放相关资源。它是Unix/Linux文件I/O操作的核心函数之一,属于POSIX标准接口。
2025-04-13 11:32:54
563
原创 STM32HAL库 -- 1.手把手创建HAL库工程模板
该文章主要介绍如何创建基于HAL库的MDK-ARM工程模板,方便以后开发新的项目时,不用再重新创建工程,直接复制本工程即可。笔者使用的STM32开发板是正点原子的精英板,该开发板使用的MCU型号是STM32F103ZET6,因此创建的工程模板也是基于STM32F103ZE。
2025-04-10 22:36:10
1160
原创 Linux文件IO -- 1.打开文件open函数详解
在Linux系统中,open() 是一个用于打开或创建文件的底层系统调用,它是文件I/O操作的核心函数之一,常用于获取文件描述符(file descriptor),以便后续对该文件进行的读写操作。
2025-04-09 21:50:08
910
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人