- 博客(322)
- 资源 (1)
- 收藏
- 关注
原创 ESP32入门开发·FreeRTOS相关·通过按键来了解----事件
事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。事件位:用于指示事件是否发生,事件位通常称为事件标志。事件组:就是一组事件位,事件组中的事件位通过位编号来引用。
2025-03-31 06:00:00
801
原创 嵌入式面试八股文·操作系统高频面经(一)
1.1 进程① 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位。② 是操作系统结构的基础。③ 进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体.信号量是一种同步机制,它本质上是一个计数器,用于多进程或多线程对共享资源的访问。信号量的主要作用是保护共享资源,使得在一个时刻只有一定数量的进程或线程可以访问。信号量的原理是基于P(sv)和V(sv)P(sv)
2025-03-17 17:04:34
1038
原创 ESP32入门开发·FreeRTOS相关·任务创建
任务的状态通常分为以下四种状态:就绪(Ready)、运行(Running)、阻塞(Blocked)、挂起态(Suspended)。运行:当任务实际执行时,它被称为处于运行状态。任务当前正在使用处理器。如果运行 RTOS 的处理器只有一个内核, 那么在任何给定时间内都只能有一个任务处于运行状态。准备就绪:准备就绪任务指那些能够执行(它们不处于阻塞或挂起状态),但目前没有执行的任务, 因为同等或更高优先级的不同任务已经处于运行状态。阻塞:如果任务当前正在等待时间或外部事件,则该任务被认为处于阻塞状态。
2025-03-17 05:00:00
1131
原创 STM32学习·HAL库相关(三)·如何在STM32CubeMX新建工程
CMSIS (微控制器软件接口标准):Cortex Microcontroller Software Interface Standard,是由ARM和与其合作的芯片厂商、软件工具厂商,共同制定的标准。ST 为了方便用户开发 STM32芯片开发提供了三种库:标准外设库 (Standard Peripheral Libraries)HAL库(硬件抽象层):Hardware Abstraction LayerLL库:Low Layer我先随便找一个文件夹,后续会告诉如何生成:文件夹名称作用。
2025-02-11 04:00:00
1485
原创 STM32学习·HAL库相关(二)·STM32存储器与寄存器映射
寄存器是单片机内部一种特殊的内存,可以实现对单片机各个功能的控制。寄存器是特殊的存储器,给寄存器地址命名的过程,就叫寄存器映射。(1)32位的单片机可以有32根地址线(每根地址线有两种状态:导通或不导通)(2)单片机内存地址访问的存储单元是按字节编址的(而不是bit)(2)外设基于总线基地址的偏移量(PERIPH_OFFSET)STM32寻址大小:2^32= 4G(字节)(3)寄存器相对外设基地址的偏移量(REG_OFFSET)(1)总线基地址(BUS_BASE_ADDR)选项字节,配置读保护等。
2025-02-10 05:00:00
708
原创 STM32学习·HAL库相关(一)·初始STM32以及C语言基础知识复习
stdint.h 是从 C99 中引进的一个标准 C 库的文件路径:D:\MDK5.34\ARM\ARMCC\include宏定义可以:提高效率、可读性、易改性,核心是替换#define 标识符 字符串标识符:宏定义的名字字符串:常数、表达式、格式串等}while(0)建议大家使用 do{ ... }while(0) 来 构造宏定义。这样不会受到大括号、分号、运算符优先级等的影响,总是会按你期望的方式调用运行。
2025-02-10 03:00:00
1218
原创 个人成长、创作与生活的平衡之旅
过去一年是充满挑战与收获的一年。在个人成长方面,技术能力得到了全面提升;创作历程中,通过与读者的互动实现了共同进步;在生活与博客事业的平衡上,找到了适合自己的方式。未来,我将继续在技术创作的道路上前行,不断探索新的领域,为读者带来更多有价值的内容,同时保持生活与事业的和谐发展。
2025-01-18 13:35:25
1137
原创 STM32F1之内部FLASH存储
STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程。类型起始地址存储器用途ROM程序存储器Flash存储C语言编译后的程序代码系统存储器存储C语言编译后的程序代码选项字节存储一些独立于程序代码的配置参数RAM运行内存SRAM存储运行过程中的临时变量运行内存SRAM存储各个外设的配置参数内核外设寄存器存储内核各个外设的配置参数。
2025-01-16 08:59:20
872
原创 嵌入式Linux(二)·配置VMware使用USB网卡连接STM32MP157实现Windows、Ubuntu以及开发板之间的通信
文章详细介绍了Ubuntu的联网模式,并且通过桥接和NAT双网卡的方式实现Windows、Ubuntu以及开发板之间的通信
2025-01-04 15:04:01
1221
原创 嵌入式Linux(一)·使用 MobaXterm 远程登录 Ubuntu、通过FileZilla 在 Windows 和 Ubuntu 之间传文件以及解决SSH无法访问的问题
本文使用 MobaXterm 远程登录 Ubuntu、通过FileZilla 在 Windows 和 Ubuntu 之间传文件以及解决SSH无法访问的问题
2025-01-04 14:57:24
945
原创 Git快速入门(五)·Git分支操作(查找git branch -v、创建git branch、切换git checkout、合并git merge),Git分支合并冲突的解决方法
git分支的使用查看git branch -v、创建分支git branch 分支名、切换分支git cheeckout 分支名、合并分支git merge 分支名以及合并冲突的解决方法
2025-01-01 05:00:00
1700
原创 Git快速入门(四)·Git常用命令(git init/status/add/reflog/logreset)
git init 初始化本地库、git status 查看本地库状态、git add 文件名 添加到暂存区、git commit -m “日志信息” 文件名 提交到本地库、git reflog/log 查看历史记录、git reset --hard 版本号 版本穿梭
2024-12-31 06:00:00
739
原创 Git快速入门(二)·本地仓库·GitHubDesktop的使用
介绍了 Git 的基础操作知识。在仓库操作方面,详述了本地仓库创建的三种方式、创建后的 UI 界面元素功能,以及删除仓库的两种形式 —— 软件删除(仅从软件移除,本地文件仍存)和本地删除(彻底从本地清除,可回收站找回);文件操作涵盖添加(创建文件后数据自动同步)、修改(备注提交后可比对更新,还能查看历史记录)与删除操作;分支原理部分阐述其为解决文件修改查找难、多人提交冲突问题,各分支能独立开发;分支操作则展示了项目分工下创建分支、在分支内创建文件、查看分支特有历史记录,以及合并分支文件至主分支的流程;
2024-12-30 06:00:00
1182
原创 Git快速入门(一)·Git软件的安装以及GitHubDesktop客户端的安装
Git 是一个免费的、开源的分布式版本控制系统。它能够快速高效地处理从小型到大型的各种项目。Git 具有易于学习、占地面积小、性能极快的特点。它拥有廉价的本地库、方便的暂存区域和多个工作流分支等特性,其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。版本控制系统会详细记录文件的每一次修改。例如,在软件开发中,每次程序员对代码文件进行修改并保存时,版本控制系统(如 Git)会记录下修改的时间、修改人以及具体的修改内容。
2024-12-30 04:00:00
2494
原创 C语言菜鸟入门·内存管理calloc()函数、free()函数、malloc()函数
在 C 语言中,内存是通过指针变量来管理的。指针是一个变量,它存储了一个内存地址,这个内存地址可以指向任何数据类型的变量,包括整数、浮点数、字符和数组等。C 语言提供了一些函数和运算符,使得程序员可以对内存进行操作,包括分配、释放、移动和复制等。void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。
2024-12-15 10:35:06
671
1
原创 Linux进阶·静态库和动态库的使用以及解决动态库无法加载的问题
文章从静态库和动态库的概念,到静态库和动态库的命名规则,再到静态库和动态库的生成详细解析了静态库和动态库时如何使用,以及进行一步步演示,解决动态库在使用过程中所遇到的问题。
2024-12-14 22:00:00
2348
1
原创 Linux进阶·如何在Ubuntu安装、调试、运行gcc/g++,以及如何进行多文件编译
gcc是Linux下的编译工具集,是GNU Compiler Collection的缩写,包含gcc, g++等编译器。这个工具集不仅包含编译器,还包含其他工具集,例如ar,nm等。gcc是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Objective-C等语言编写的程序。gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合嵌入式领域的开发编译。后缀名所对应的语言.cC源程序C++源程序.mObjective-C源程序。
2024-12-10 23:00:00
4500
2
原创 Linux命令进阶·软链接命令(ln)、查看系统时间命令(date)、自动校准系统时间程序(ntp)
本文详细介绍并演示了:软链接命令(ln)、查看系统时间命令(date)、自动校准系统时间程序(ntp)
2024-12-10 22:00:00
1056
原创 Linux命令进阶·快捷键Ctrl+c/d/r/a/e/l/←/→、如何进行软件安装、systemct命令的使用
Ctrl+c 强制停止快捷键、Ctrl+d 退出或登出快捷键、Ctrl+r 历史命令搜索、Ctrl+a 跳到命令开头、Ctrl+e 跳到命令结尾、Ctrl+键盘左键,向左跳转一个单词、Ctrl+键盘右键,向右跳转一个单词、clear清屏、Ctrl+l清屏、软件安装
2024-12-09 02:00:00
1780
原创 Linux命令进阶·如何修改文件和文件夹权限(chomd命令的使用)、如何修改用户和用户组(chown命令的使用)
文章详细描述了,如何通过chomd命令修改文件和文件夹权限以及如何通过chown命令修改用户和用户组
2024-12-09 01:00:00
1407
原创 Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,getent命令以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题
如何切换root用户,如何回退上一用户,sudo临时授权命令,、用户/用户组管理相关命令详解,以及问题解决(创建用户不显示问题、Ubuntu不显示用户名只显示"$“符号问题),如何查找当前系统有哪些用户和用户组。
2024-12-01 11:51:01
3175
3
原创 基于STM32F103的FreeRTOS系列(十五)·中断管理相关
用户可以自定义配置系统可管理的最高中断优先级的宏定义configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY,它是用于配置内核中的basepri 寄存器的,当 basepri 设置为某个值的时候,NVIC 不会响应比该优先级低的中断,而优先级比之更高的中断则不受影响。
2024-11-27 21:00:00
1632
1
原创 C语言菜鸟入门·关键字·const的用法、volatile的用法
在 C 和 C++ 中,const 是一个关键字,用来声明常量或指示某个值不能被修改。通过使用 const,程序员可以确保某个变量、指针或函数的参数在某些条件下不可被修改,从而增强程序的安全性和可维护性。与volatile合称“cv特性”,指定变量不可被当前线程/进程改变。
2024-11-26 06:00:00
1126
原创 C语言菜鸟入门·关键字·auto的用法、register的用法
在 C 语言中,register 是一个存储类别关键字,用于提示编译器将某个变量存储在寄存器中,以提高访问速度。寄存器是计算机内部速度最快的存储位置,因此,使用 register 关键字声明的变量访问速度可能会更快。register 仅是对编译器的优化建议,编译器可能会忽略这个建议,特别是当系统有较少的寄存器,或者变量本身的访问频率较低时,编译器可能会选择将该变量存储在内存中,而非寄存器。然而,在 C 语言中,局部变量默认就是自动变量,所以写 auto 是没有必要的,编译器会自动推断。
2024-11-26 05:00:00
1266
原创 C语言菜鸟入门·printf格式化打印总结(%d、%i、%hd、%zd、%u、%lu、%o、%x、%f、%E、%g、%c、%s等)
C语言printf格式化打印:%d、%i、%hd、%ld、%lld、%zd、%u、%llu、%lu、%o、%ho、%lo、%llo、%x、%hx、%lx、%llx、%X、%hX、%lX、%llX、%f、%lf、%Lf、%e、%E、%Le、%g、%G、%a、%A、%c、%s、%%、%p、%n
2024-11-25 06:00:00
2873
原创 C语言菜鸟入门·关键字·sizeof的用法
在 C 语言中,sizeof 是一个运算符,用来获取一个数据类型或数据结构在内存中所占的字节数。它是一个编译时运算符,不会在运行时进行计算,而是由编译器在编译时确定大小。sizeof(数据类型)sizeof(任何有效表达式)sizeof会返回该表达式结果的类型大小。
2024-11-25 05:00:00
2369
原创 嵌入式面试八股文(十)·RS485特性分析、CAN硬件同步和再同步遵从规则、SPI四种工作模式、错误帧基本概念
传统协议相关题目,RS485,SPI,CAN总线
2024-11-23 06:00:00
1015
原创 C语言菜鸟入门·关键字·union的用法
共用体(union)是一种数据结构,它允许在同一内存位置存储不同的数据类型,但每次只能存储其中一种类型的数据。与结构体不同,结构体中的每个成员都有各自独立的内存空间,而共用体中的所有成员共享同一块内存区域。
2024-11-23 05:00:00
2075
原创 C语言菜鸟入门·关键字·修饰关键字short、long、signed、unsigne详细
short 关键字用于声明短整型变量。long 用来声明一个长整型变量,通常在需要比 int 更大范围的整数时使用。signed 用于声明一个变量是“有符号”的,即可以存储正数、负数和零。unsigned 修饰符指定变量为无符号整数,即该变量不能存储负数。
2024-11-22 06:00:00
1272
1
原创 C语言菜鸟入门·关键字·float以及double的用法
float 用于声明单精度浮点数变量,适用于需要表示较小范围浮动数值的场景。通常用于科学计算、物理模拟或财务计算等需要小数的应用。
2024-11-22 05:00:00
2380
原创 C语言菜鸟入门·关键字·int的用法
int 是一个关键字,用于声明整数类型的变量。整数是没有小数部分的数字,可以是正数、负数或零。在 C 语言中,int 类型默认是带符号(signed)的,这意味着它可以表示负数、零和正数。
2024-11-21 06:00:00
1630
1
原创 C语言菜鸟入门·关键字·char关键字
char 是用来声明一个字符类型变量的关键字,表示变量可以存储一个字符(通常是一个字节)。在 C 语言中,char 变量的大小通常为 1 字节(8 位),具体大小取决于平台和编译器。
2024-11-21 04:00:00
1424
原创 基于STM32F103的FreeRTOS系列(十四)·软件定时器
定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器的周期与频率。相当于一个闹钟,到点干什么。软件定时器并不依赖于硬件定时器的中断信号,而是通过系统定期的时间片或任务调度机制来检查定时器是否到期。当软件定时器到期时,会触发预定的回调函数或执行相应的任务。注意,回调函数不要使用带有阻塞状态的函数。FreeRTOS操作系统提供软件定时器功能,软件定时器的使用相当于扩展了定时器的数量,允许创建更多的定时业务。裁剪:能通过宏关闭软件定时器功能。软件定时器创建。
2024-11-20 04:00:00
1744
基于GD32使用ESP8266 WIFI通信实验.zip
2024-12-20
基于GD32的485通讯实验.zip
2024-12-20
基于GD32的USB虚拟串口通信实验.zip
2024-12-20
基于GD32的BH170光照强度检测.zip
2024-12-20
基于GD32的BH170光照强度检测实验.zip
2024-12-20
基于GD32的5V步进电机正反转实验.zip
2024-12-20
基于GD32的5V步进电机正反转.zip
2024-12-20
基于GD32的SR04超声波测距实验.zip
2024-12-20
基于GD32的SR04超声波测距.zip
2024-12-20
基于GD32的4位数码管显示实验.zip
2024-12-20
基于GD32的4位数码管显示.zip
2024-12-20
基于GD32的DS18B20温度传感器OLED屏显示实验.zip
2024-12-20
基于GD32的红外避障检测实验.zip
2024-12-20
基于GD32的红外避障实验.zip
2024-12-20
基于GD32使用华邦W25Q32 SPI FLASH读写实验.zip
2024-12-20
基于GD32的DS18B20温度传感器液晶屏显示实验.zip
2024-12-20
基于GD32的ADC-DMA实验.zip
2024-12-20
基于GD32的CAN通信.zip
2024-12-20
基于GD32的USART串口通讯.zip
2024-12-20
基于GD32的IAP实验.zip
2024-12-20
基于GD32移植FreeRTOS实验.zip
2024-12-20
基于GD32的ESP8266 WIFI通信实验.zip
2024-12-20
基于GD32的FWDG看门狗实验.zip
2024-12-20
基于GD32的485通讯.zip
2024-12-20
main函数可以再任意位置
2024-11-21
一个周期信号经过等间隔采样后是否是周期和什么有关?
2024-11-21
C语言--a的使用,uint32_t的坑
2024-11-20
降压电路设计问题(TPS54560)
2023-12-26
STM32F103C8T6烧录问题
2023-12-12
STM32F103C8T6的ADC采集问题
2023-12-05
STM32模块代码合并
2023-10-28
PB3,PB4引脚进行重定义
2023-10-28
数码管显示问题乱码显示
2023-10-26
STM32F103C8T6驱动七段数码管
2023-10-25
示波器如何测量占空比
2023-10-24
keil5头文件添加
2023-10-21
P10LED单元板如何实现滚屏显示
2023-10-17
STM32F1kile5中如何更改
2023-10-17
AD在b站上学习的为啥,这里和视频上的不一样点击完出来这个是为什么
2023-09-26
函数于结构体的分文件编写
2023-09-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人