- 博客(66)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 Linux 进程操作
本文总结了Linux系统中20个常用进程操作函数,包括进程创建(fork)、程序执行(exec系列)、进程控制(waitpid)、进程信息获取(getpid等)、进程间通信(pipe)、文件操作(read/write)和信号处理(signal)等。每个函数介绍了基本作用、参数列表、返回值和使用示例,涵盖了进程管理的主要功能。这些函数是开发Linux多进程应用程序的基础工具,掌握它们对系统编程至关重要,可用于实现进程创建、同步、通信等核心功能。
2025-06-27 10:23:35
973
原创 Linux文件操作
本文概要介绍了Linux系统下的文件操作基础。主要内容包括:1)使用open系统调用打开/创建文件,介绍标志参数和权限模式;2)close系统调用关闭文件描述符;3)read和write系统调用实现文件读写操作;4)提供了两个示例程序演示基本文件操作流程;5)包含Makefile编译示例和用户数据文件样例;6)总结强调通过实践掌握Linux文件操作系统调用的重要性。全文简明扼要地讲解了Linux文件I/O的基本操作方法。
2025-06-26 16:57:38
425
原创 FreeRTOS 内存管理
本文介绍了基于FreeRTOS的STM32F1xx内存管理实现,展示了动态内存分配(pvPortMalloc)和释放(vPortFree)的使用方法。实验通过按键触发内存操作,实时监控堆空间变化(通过xPortGetFreeHeapSize),并验证了内存内容的正确读写。示例代码包含任务创建、UART调试输出和LED控制等功能,演示了FreeRTOS在嵌入式系统中的典型应用场景。实验结果表明系统能够正确执行内存分配、使用和释放操作,每次操作后剩余堆空间变化符合预期,为嵌入式开发中的动态内存管理提供了实用参考
2025-06-22 15:07:06
312
原创 FreeRTOS 通知学习
FreeRTOS通知机制摘要 FreeRTOS任务通知是一种高效的任务间通信方式,主要用于传递简单信号或少量数据。提供三种典型应用模式: 二值信号量模式 使用xTaskNotifyGive()发送通知 接收端用ulTaskNotifyTake()清除通知标志 适合简单事件通知场景 计数信号量模式 多次发送通知会累计计数 接收端每次获取会减少计数 适合需要记录事件次数的场景 数值传递模式 可携带32位整数数值 适合传递简单参数或状态信息 实验结果表明,通知机制相比传统队列/信号量具有更低的开销,特别适用于轻量
2025-06-22 12:28:46
323
原创 FreeRTOS 定时器使用
本实验基于STM32F103C8T6硬件平台,使用FreeRTOS实现了定时器功能。通过创建两个定时器(500ms周期性和5000ms单次触发)并编写相应回调函数,验证了FreeRTOS定时器的基本使用方法。实验过程中初始化了定时器任务和LED闪烁任务,通过串口输出确认了定时器的正确触发时序。结果表明FreeRTOS的定时器模块能够精确控制任务执行时间,为嵌入式实时系统开发提供了可靠的时间管理机制。实验成功掌握了定时器创建、配置和回调处理等核心操作,为后续FreeRTOS应用开发奠定了基础。
2025-06-21 16:50:56
445
原创 FreeRTOS 事件
摘要:本文介绍了一个基于FreeRTOS的按键检测与事件处理系统实现。系统通过创建Key_Task、Event_Task和LED_Task三个任务,实现了按键状态检测(含消抖处理)、事件组通信和LED状态切换功能。主程序初始化硬件后创建任务并启动调度器,按键任务检测GPIO状态并设置事件位,事件任务等待组合按键事件,LED任务定时切换LED状态。实验结果表明系统能正确检测按键并响应组合按键事件。本设计展示了FreeRTOS多任务调度和事件组通信机制的应用,为嵌入式系统任务间通信提供了实用范例。
2025-06-21 12:32:09
315
原创 FreeRTOS 中的互斥信号量
FreeRTOS中的互斥信号量(Mutex)是一种特殊的二进制信号量,用于保护临界区资源,确保同一时间只有一个任务能够访问共享资源。与普通信号量不同,Mutex具有优先级继承特性,可以有效避免优先级反转问题。本文介绍了Mutex的基本概念、创建方法(使用xSemaphoreCreateMutex())、获取(xSemaphoreTake())和释放(xSemaphoreGive())的操作流程,并通过实验代码展示了如何在实际应用中使用Mutex来同步多任务对共享资源的访问。Mutex是FreeRTOS中实现
2025-06-21 11:43:14
615
原创 FreeRTOS 数值信号量
摘要: 本实验在STM32F1xx平台上使用FreeRTOS实现数值信号量功能。通过STM32CubeMX和Keil MDK-ARM开发环境,创建了一个初始值和最大值均为5的计数型信号量。系统包含三个任务:Send_Task(PA10按键释放信号量)、Receive_Task(PB4按键获取信号量)和LED_Task(500ms间隔切换LED)。实验验证了信号量的创建、释放和获取机制,并通过串口打印调试信息。结果表明信号量能有效协调任务间的资源共享,按键操作正确触发信号量变化,LED定时切换正常工作。
2025-06-20 20:58:34
242
原创 FreeRTOS信号量(Semaphores)简介
FreeRTOS信号量是嵌入式系统中实现任务同步和资源共享的重要机制。信号量分为二进制信号量(只有0/1状态)和计数信号量(多个资源计数),用于控制对共享资源的访问。二进制信号量通过xSemaphoreCreateBinary创建,使用xSemaphoreTake获取和xSemaphoreGive释放;计数信号量通过xSemaphoreCreateCounting创建。典型应用包括保护共享资源和任务间同步。示例代码展示了按键触发信号量释放、接收任务获取信号量的基本用法。正确使用信号量可以有效避免资源竞争。
2025-06-20 20:34:13
367
原创 FreeRTOS 队列
FreeRTOS队列是任务间通信的核心机制,用于异步传递数据。通过xQueueCreate创建队列,指定长度和项目大小。xQueueSend发送数据(可阻塞/非阻塞),xQueueReceive接收数据。关键参数包括队列句柄、数据缓冲区和等待时间。使用时需注意队列长度、项目大小配置,并正确处理操作返回值。队列避免了直接内存共享带来的并发问题,适合构建可靠的多任务系统。开发时应合理设置阻塞时间,平衡系统响应与性能。
2025-06-20 09:38:48
424
原创 FreeRTOS 任务管理学习笔记
摘要:本文记录了在STM32上使用FreeRTOS实现任务管理的实验过程。实验创建了三个任务:两个LED控制任务(分别以300ms和500ms间隔闪烁LED)和一个按键任务(通过按钮暂停/恢复LED1任务)。重点介绍了任务创建(xTaskCreate)、延时(vTaskDelay)、暂停/恢复(vTaskSuspend/vTaskResume)等核心功能,以及按钮去抖动处理技术。实验展示了FreeRTOS的基本任务管理机制,包括任务同步和资源动态管理。最后,初始化任务在完成设置后自删除以释放资源,体现了RT
2025-06-19 21:10:47
327
原创 【人工智能】实验室GPU资源申请使用
pytorch241 为环境名,自己随便取,python 版本根据要安装的pytorch要求指定。为显卡支持CUDA最高版本,也就是说过会安装pytorch的时候,cuda版本不能超过这个。salloc 将会分配一个cpu,该语句执行后将会返回cpu编号,我申请返回。接下来就可以在GPU节点安装anaconda、pytorch GPU等。:表示申请的要申请的分区为gpu-rtx3080ti。申请成功会返回GPU编号,我申请到的GPU编号为。如果显示下面图图片,说明显卡安装没问题,右上角。
2024-10-17 22:15:20
1240
2
原创 STM32 学习——1. STM32最小系统
这是一个最小系统的测试,LED灯会进行闪烁。选用PC13口,因为STM32F103C8T6 硬件开发板中,这个端口是一个LED。
2024-05-25 18:00:44
907
原创 Python 学习——Python BeautifulSoup 库文档
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.这篇文档介绍了BeautifulSoup4中所有主要特性,并且有小例子.让我来向你展示它适合做什么,如何工作,怎样使用,如何达到你想要的效果,和处理异常情况.文档中出现的例子在Python2.7和Python3.2中的执行结果相同。
2024-03-11 16:30:38
1191
1
原创 Python 学习——Python requests 库文档
如果你改变了编码,每当你访问 r.text ,Request 都将会使用 r.encoding 的新值。如果你创建了自己的编码,并使用 codecs 模块进行注册,你就可以轻松地使用这个解码器名称作为 r.encoding 的值, 然后由 Requests 来为你处理编码。接收者可以合并多个相同名称的 header 栏位,把它们合为一个 “field-name: field-value” 配对,将每个后续的栏位值依次追加到合并的栏位值中,用逗号隔开即可,这样做不会改变信息的语义。
2024-03-11 12:00:06
1914
原创 前端学习——jQuery 入门学习(黑马程序员笔记)
jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素。注意:jQuery选择器返回的是jQuery对象。jQuery选择器有很多,基本兼容了CSS1到CSS3所有的选择器,并且jQuery还添加了很多扩展性的选择器。【查看jQuery文档】jQuery选择器虽然很多,但是选择器之间可以相互替代,就是说获取一个元素,你会有很多种方法获取到。所以我们平时真正能用到的只是少数的最常用的选择器。/** 自定义动画* 参数1:需要做动画的属性。
2023-01-28 21:49:43
1171
原创 springBoot——SpringBoot 整合 Mybatis 流程
SpringBoot 整合 Mybatis 流程,SpringBoot 整合 Mybatis-Plus 流程
2023-01-23 00:22:15
955
原创 学习总结——最大公约数、素数
最大公约数、素数一、最大公约数二、最小公倍数一、最大公约数//求最大公约数函数 int gcd(int a,int b) return b == 0 ? a : gcd(b, a % b);二、最小公倍数//求最大公约数函数 int gcd(int a,int b) return b == 0 ? a : gcd(b, a % b);//求最小公倍数long long int lcm(int a,int b) return a * b / gcd(a, b);...
2023-01-21 14:47:34
179
原创 专业课学习——第 5 章 数据库完整性
数据库完整性1. 实体完整性定义实体完整性2. 参照完整性1. 实体完整性定义实体完整性// 在列级定义主码create table Student(Sno char(9) primary key, Sname char(40) not null, Ssex char(2), Sage smallint, Sdept char(20));// 在表级定义主码create table Student(Sno char(9), Sname char(40) not null, Ssex
2023-01-21 14:47:25
129
原创 汇编语言与接口技术——期末设计
本设计以8086微处理器为基础,为了研究并行通信的概念,为了研究I\O数字接口芯片,并且掌握可编程接口芯片的应用。选用8253、8255、8259等芯片,集成实现了存储器扩展应用、液晶显示器应用、交通灯控制系统、简易密码锁功能。在 Proteus 中设计出硬件连接及布局,在 EMU 8086 编译环境下编写程序进行仿真,仿真实验结果表明:该电路设计正确,程序编写符合要求,各部分协作运行效果良好。关键字: 8086微处理器,8086微机设计,交通灯,密码锁...
2022-08-14 09:51:16
5722
18
原创 试图5天学会python——Mooc 实例
文本进度条,自动安装 python 库脚本,根据文件画图,政府工作报告词云( 《国务院关于实施乡村振兴战略的意见》),七段数码管写当前日期,绘制玫瑰花
2022-08-14 08:35:51
860
1
取消java图形用户界面右上角叉
2021-07-11
取消java图形用户界面右上角叉
2021-07-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人