自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32 GPIO

GPIO即通用输入输出端口,是微控制器与外部世界进行通信的接口。在STM32中,GPIO用于接收传感器数据、控制LED灯、驱动电机等多种应用。它使得STM32能够根据程序的指令读取或发送电信号,实现对各种外设的控制。上拉电阻将引脚默认连接到电源电压,使得未激活状态下引脚处于高电平;下拉电阻则是将其连接到地,使得未激活状态下引脚处于低电平。它们的作用是确保引脚有一个稳定的状态,避免不确定的行为。

2025-07-04 15:55:00 695

原创 FREE RTOS

在FreeRTOS中,如果多个任务具有相同的优先级,它们会在可用的CPU时间上轮转执行。这个函数的主要参数包括任务的入口函数(即该任务运行时执行的代码)、任务的名字、堆栈大小、传递给任务的参数、任务的优先级和一个用于保存任务句柄的指针。FreeRTOS中的任务可以处于运行、就绪、阻塞、挂起等状态。任务之间的转换基于任务的优先级、是否等待某些事件以及系统当前的资源分配情况。保证系统的稳定性和效率涉及合理设置任务优先级、有效利用同步机制减少资源竞争、以及对任务的周期性行为进行良好规划,避免长时间占用CPU。

2025-07-04 15:53:20 331

原创 c++ vector的用法

在 C++ 里,vector是标准库提供的动态数组容器,它能够存放任意类型的对象,并且会在元素数量发生改变时自动调整存储空间大小。

2025-06-16 20:03:43 288

原创 c++中struct和class的区别

想快速打包数据、追求简单直接,用。

2025-06-16 19:55:59 412

原创 Linux根文件系统结构

usr目录的内容可以存在另一个分区中,在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的是共享、只读的程序和数据,这表明/usr目录下的内容可以在多个主机间共享,这些主要也符合FHS标准的。用于存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。,其他主机相关的,可变的文件应该保存在其他目录下,比如/var。

2025-06-16 18:18:35 265

原创 GPIO设备驱动原理

例如,USB驱动程序向Linux核心提供了一个设备文件I/O接口,GPIO设备驱动程序向GPIO子系统提供了GPIO设备接口,接着向核心提供了文件I/O和缓冲区的接口。作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据;如果不能,就调用请求函数来进行实际的I/O操作。:在对字符设备发出读/写请求时,实际的硬件I/O操作就紧接着发生了。,其驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。在Linux系统下,字符设备和块设备的主要区别是。

2025-06-16 18:16:26 152

原创 U-Boot工作过程

run_command函数调用common/command.c中实现的find_cmd函数在__u_boot_cmd_start与__u_boot_cmd_end间查找命令,并返回menu命令的cmd_tbl_t结构。这样只要将U-Boot所有命令对应的cmd_tbl_t变量加上“.u_boot_cmd”声明,编译器就会自动将其放在“u_boot_cmd”段,查找cmd_tbl_t变量时只要在__u_boot_cmd_start与__u_boot_cmd_end之间查找就可以了。

2025-06-16 18:13:04 1824

原创 TCP和UDP的区别

技术上讲,实现起来区别不大,tcp需要首先建立连接,而udp只要绑定端口发送就行,tcp如果建立连接以后,能够保证传送的数据包次序,而udp则不能保证数据包到达的先后次序,甚至会丢包,就这点而言,udp的客户端所要做的接收工作要更复杂(如接收文件等) 通常我们在说到网络编程时默认是指TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为 SOCK_STREAM。6、收发数据,用函数send()和recv(),或者read()和write();

2025-06-16 18:05:57 315

原创 c、c++ 结构体(Struct) 联合(Union)枚举(Enum)

联合也是一种用户自定义的数据类型,它允许你使用相同的内存位置来存储不同的数据类型。与结构体不同,联合的所有成员共享同一块内存空间,因此在同一时间只能有一个成员有效。它允许你创建一个包含多个成员变量的复合数据类型,这些成员变量可以是不同的数据类型,如整数、浮点数、字符等。枚举中的每个枚举常量都有一个对应的整数值,默认情况下,第一个枚举常量的值为 0,后续的枚举常量的值依次递增。// 访问结构体成员并输出。// 访问结构体成员并输出。// 初始化结构体成员。// 初始化结构体成员。// 声明结构体变量。

2025-06-16 18:03:56 1431

原创 C++ string 的使用

属于标准库中的一个类,它能用来处理和操作字符串。"使用 append 拼接后的 str1: ""找到 'World',位置是: ""字符串的第 3 个字符: ""你输入的整行字符串是: ""请输入一个字符串: ";"请输入一行字符串: ";"未找到 'World'""你输入的字符串是: "// 忽略缓冲区的换行符。"拼接后的字符串: ""修改后的字符串: ""字符串的长度: "

2025-06-16 18:02:05 311

原创 C++拷贝构造函数

当类中有指针、动态数组、文件句柄等需独立管理的资源时,必须自定义深拷贝的拷贝构造函数和拷贝赋值运算符。通过上述方式,即可在拷贝构造和拷贝赋值时实现深拷贝,保障对象资源的独立性和程序稳定性。重新分配内存,再将源对象的数据复制到新内存,确保新对象与原对象资源独立。:确保每个对象拥有独立资源,避免浅拷贝导致的重复释放、数据篡改等问题。类名& operator=(const 类名& other)类名(const 类名& other)// 重新分配内存并复制内容。// 深拷贝构造函数。// 其他成员...

2025-06-16 18:00:17 368

空空如也

空空如也

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

TA关注的人

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