- 博客(60)
- 收藏
- 关注
原创 Codex缓存文件迁移指南(Microsoft Store 版)
由于我安装的是版本的codex,所以本文以该版本为说明。Microsoft Store 版 Codex 占用 C 盘、比较建议关注的是这几个地方位置主要放什么是否建议迁移程序本体不建议动C:\Users\用户名\.codex会话、状态库、日志、插件、技能、记忆建议迁移C:\Users\用户名\.cache\codex-runtimes运行依赖、沙箱运行器可清理,也可迁移C:\Users\用户名\Documents\Codex你的项目文件建议放在 D 盘同时,本文中的所有命令均是在。
2026-10-12 16:59:15
246
原创 我用book-to-skill把尹圣雨的《TCP/IP网络编程》做成了知识库(适合快速入门网络编程)
我最近在学习网络编程的时候,找到了经典书籍《TCP/IP网络编程》,但是原书一共有407页之多!很难坚持读下去,所以我就想能不能把每章的精华总结出来,做成知识库呢?受到之前很火的book-to-skill的启发,我把《TCP/IP网络编程》喂给了agent让他帮我总结了一个知识库出来,这里分享出来,供大家一起学习!😊。
2026-10-12 16:17:05
388
原创 FastAPI的接口实现流程讲解
模型类型作用例子ORM 模型映射数据库表UserPydantic 模型校验请求、规范响应UserCreateemail: strid: intemail: str具体的可以参考数据库表。
2026-10-06 18:05:16
239
原创 新手如何借助agent改造github项目(保姆级教程)
如今时代,不论是大学生的学校大创,还是找工作的简历都离不开一个好的项目,但是自己从零到有手搓一个项目实在过于艰难,而纯靠vibe coding出来的项目也很toy,所以学会改造别人的项目已经成为了一个很重要的技能。众所周知,github是一个巨大的代码仓库,里面有非常多优秀且开源的项目,在作者允许的情况下,我们可以随意的对项目进行改造从而转换为自己的项目,所以下面就针对github上的项目,就如何改造进行保姆级的讲解。
2026-10-06 17:13:20
352
原创 怎么为自己的项目写一篇好的readme文档(新手指南)
在github上浏览仓库时,第一时间看的一定是作者的readme文件,它包含了整个项目的主要功能,整体架构,使用说明,所以说readme文件是你项目的门面解决什么问题?有什么特色功能?适用于什么场景?
2026-09-30 19:00:10
144
原创 vibe coding的常见名词/问题解答(大白话版)—基础篇
LLM,全称是“Long Language Model”,中文意思是“大语言模型”,即我们生活中常用的豆包,deepseek这些ai模型agent的本质是“能调用工具的llm”,普通的llm只能回答问题,输出对话,能力有限,但是agent可以调用各种工具,能力更强prompt的中文意思是”提示词“,其实就是你给llm/agent发的提示信息,比如你和它说”你是一个资深的程序员“像这种就是角色设定的promptskill的中文意思是”技能“,我觉得它的本质其实是"一套写好的操作流程";
2026-08-14 18:09:09
222
原创 Asyncio异步编程笔记(纯人工整理)
写这篇笔记的初衷:由于现在ai大火,在agent学习,开发的时候几乎都离不开异步编程,但是网络上对于异步编程的讲解要么就是比较简略,要么就是比较晦涩难懂。很幸运的看到了一门比较优质的网课,这里就把我在看网课时记录和总结的笔记分享出来,都是自己纯手动整理的,包含了很丰富的代码实例,供大家一起交流学习。
2026-07-25 22:50:54
210
原创 使用TRAE(网页版)看不到生成的文件在哪里
我在使用trae(网页版)的时候,经常ai说已经生成了文件,但是我在它右侧的task outputs里什么都没看到,所以很疑惑,不知道它到底把文件放在了哪里。一开始我还以为是它把文件放到了它的云端上,所以我每次都和它说再给我生成一份本地可见的文件,后来我才发现,下次大家找不到文件的时候,可以试着打开它的thought看看,希望可以帮助到大家😊~因为每次它给回答的时候,都会默认折叠thought,所以我经常看不到文件。
2026-07-14 21:59:24
411
原创 实现协程的三种方式
本文介绍了Python中实现协程的三种方法。协程允许在单线程内实现任务切换,在遇到IO操作时自动切换任务以提高效率。第一种方法使用yield关键字实现生成器函数;第二种通过asyncio装饰器(3.4版本)配合yield from处理IO操作;第三种推荐使用3.5版本后的async/await语法,功能与第二种相同但更简洁。后两种方法都能在IO等待时自动切换任务,适用于需要并发处理IO密集型任务的场景,如下载多张图片等。
2026-07-13 20:21:12
202
原创 Hello-Agents的第一个练习-5分钟实现一个智能体(实现详解)
我在hello-agent看到的第一个练习是,虽然说是5分钟,但是我配环境,写代码还是用了挺久的😂,下面我就详细讲解一下具体实现和一些坑点。我自己看着网站练习时在vscode写了5个文件,下面是我的。
2026-05-30 12:27:52
264
原创 刷题深度解析 Prompt
在刷题的时候,卡住了想问ai,但是ai给的答案有的时候不全面,就要一次一次问它。所以我就总结了一份普适的prompt,只要问它一次,它基本上就能把这道题的。我在刷 [平台名称] 的 [题号/题目名称],卡住了,请帮我分析。【题目简述】:[用一两句话说清楚题目要我干什么]【我的卡点】:[选一个]
2026-05-22 10:28:00
79
原创 2023年天梯赛真题解析L2-2(优先级队列)
因为每个学校包含的信息较多,用结构体来存储比较方便,用优先级队列可以快速找到尚未安排赛场的最多的队员人数,好进行分配。
2026-05-22 10:17:08
32
原创 2021天梯赛L2-4真题解析
题目链接:https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?本题我觉得比较简单,比L2的前三题容易一些,其实就是数组的赋值和指针的移动,我们用pos作为指针,随着每一次的操作,对应移动,不断模拟题目的过程就可以了。
2026-04-23 21:06:54
48
原创 天梯赛经验总结(细节篇)
好了,要说的就这么多了,其实天梯赛想要拿100+还是很容易的,注意一下细节不要犯错就可以了,但是想要拿到高分还是要多练算法。
2026-04-23 20:30:19
390
原创 天梯赛备赛经验分享(基础版)
首先,天梯赛是IOI赛制天梯赛的赛题分为3档,分别是L1,L2,L3,其分数满分依次为100,100,90,难度依次递增。L1共8题,题目一般都比较简单,就是考察一些最最基础的数组结构,像数组,哈希表,sort排序L2的题目就相对难一些了,L2一共4题,L2-1一般都喜欢考栈,也比较简单,L2-2喜欢考字符串1类型的题目,像是字符串的插入,删除等等,L2-3,4考的不太固定,像今年考了dfs和图,之前又考了暴力,回溯,差分等等。总之L2的题目也是越到后面越难的。
2026-04-20 18:29:19
682
原创 2021年天梯赛L2-3(有序表+排序)
题目链接:https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?具体的一些细节在代码的注释中。L2-039 清点代码库。
2026-04-20 17:50:27
309
原创 C51:使用PWM波调节LED灯的亮度
脉冲宽度调制):是一种通过调整信号的脉冲宽度来控制电力输出的技术。在一个PWM信号周期内,信号会在高电平和低电平之间切换,通过改变高电平持续的时间(即脉冲宽度),可以模拟出不同的电压水平。例如一个PWM波,周期为10ms,高点平的时间为4ms,那么它的占空比就是40%在该程序中LED的亮度是普通亮度的一半。就是高电平所占整个周期的时间。
2025-07-28 20:22:37
497
原创 C51:使用NE555方波发生器测量频率
3.注意,这里频率变量应该定义为unsigned int类型,因为频率的取值范围超出了unsigned char(0~255)的最大范围。如果使用unsigned char类型也会出现频率读取错误的情况。1.TH0储存了频率值的高8位数据,TL0储存的是低8位数据,所以在计算频率的时候需要先将TH0左移8位,再使用 | 运算符。NE555的配置模式主要为单稳态模式:若被测信号是随机脉冲,NE555可输出固定频率的方波。2.在得到频率值之后,需要将之前的计数(TH0,TL0)清零,才能进行下一次的测量。
2025-07-28 20:00:22
462
原创 C51:使用超声波测量距离
解释:TH1读取的是高8位的时间的值,TL1读取的是低8位时间的值,所以需要先将TH1左移8位,然后使用 | 操作得到总时间。当然我是省略了定时器2初始化函数的一部分,大家在实操的时候记得补全,得到距离后,就可以写一个数码管操作函数,将得到的距离显示在数码管上。因为我们在程序中需要使用定时器2来进行中断操作,这里我们需要再选择一个定时器来计时,这里我们使用定时器1,启动定时器1后,每过1us,计数器值+1,当计数器加到65535时,需要将计数器清零,然后继续计时。
2025-07-27 22:51:35
568
原创 C51:用DS1302时钟读取和设置时间
因为在ds1302.c文件中包含了写ds1302(51向ds1302写数据)和读ds1302(51从ds1302读数据)的两个函数,我们根据文件中提供的函数来写读取时间和设置时间的函数即可。:当WP位(寄存器的第七位)为1时,写保护功能开启,禁止对任何寄存器进行写操作,防止误改寄存器中的时间,日期或者其他数据。如果要对时钟进行写操作,需要将WP位设置为0,关闭写保护功能。用处:1.我们在读取时间的时候,因为Read_DS1302_Byte()函数返回的是BCD码,所以在读取时需要转换为十进制。
2025-07-25 22:56:40
475
原创 C51:使用PCF8591读取ADC,写DAC
通过PCF8591芯片,可以读取旋转电位器和光敏电阻的电压值 ,如图的左边第一部分,就是光敏电阻的电路图,第二部分就是旋转电位器的电路原理图。链接: https://pan.baidu.com/s/1oQTP0uyjfqiRZ4PnahcX-A?注意:这个函数与ADC_Read_process()函数不同,传入函数的参数的取值范围为(0~255),转换为电压值就是(0~5.00)因为ADC_Read_process()函数返回的是。那么本应该读取旋转电位器的AD值时读到的确实光敏电阻的AD值,
2025-07-25 09:00:00
1041
原创 DS18B20扩展:在数码管上显示温度时包含小数部分
上一篇博客的例子中,讲解了用DS18B20读取温度时保留整数部分,现在讲解一下,如何保留小数部分,并在数码管上显示出来。2.因为在读取温度时将温度*10,所以在计算的时候需要 /100,才能得到温度的十位数字,后面的数字同理。1.要让数码管某位显示小数,在smg_code[位数]后面 |0x80即可。大家可以参考一下我之前讲的数码管那一篇博文。修改后的代码如下:(以保留一位小数为例)
2025-07-24 21:56:20
544
原创 C51:用DS18B20传感器读取温度
在onewire.c文件中,已经包含了init_DS18B20(DS18B20设备初始化),Write_DS18B20(向DS18B20写一个字节)和,Read_DS18B20(从DS18B20读取一个字节)函数了,我们要做的就是根据这些函数,编写一个读取温度的函数。读取温度函数原型如下,注意:需要把Read_Temperature()函数放在onewire.c文件中。工作原理:51单片机是通过DS18B20温度传感器,并且基于onewire协议来读取温度数据的。
2025-07-24 18:08:00
438
原创 C51:矩阵键盘(三行按键法)
例如 :S7按下,那么P30,P44为0,其他的位都是1,所以P44_P42_P35_P34_P33_P32_P31_P30为0111 1110,也可以表示为0x7f,其它的按键同理。那么分别进行行扫描和列扫描,在进行行扫描的时候对key_io赋值,列扫描的时候进行 | 操作,就可以得到最后的字节数据,并返回该值。首先要进行和列扫描,读取键值,原理与上一篇博客的状态机法相同,先给高四位赋值为0,再给低四位赋值为0,来判断按键所在的行和列。在执行操作函数里我们是通过Trg的值来判断按下的是哪一个键。
2025-07-23 09:00:00
439
原创 C51:矩阵键盘(状态机法)
最后,用状态机法写矩阵键盘还是有点繁琐的。同样的,三行按键法也可以用来写矩阵键盘,只需要三行,可以大大减少代码量。与独立按键同理,KBD_Read_State()函数也需要放在。2.矩阵键盘(状态机法)
2025-07-21 22:49:19
821
原创 C51:独立按键(三行按键法)
上一篇博客介绍了状态机法,但是程序代码量巨大,不便于记忆,接下来给大家介绍三行按键法,不仅方便记忆,还可以在考场上领先别人一大步。以下是三行按键法的读取函数,这个函数理解起来比较复杂,大家也没有必要硬要理解,能把代码背下来就好了。注意:vBTN_ThreeLine_Process()函数需要放到while(1)循环里执行。解释:把cnt_key放在定时器中,每过1ms加一,每10ms读取一次键值。定义一个count变量,根据按下的键值可以对count的值进行加减操作。
2025-07-21 09:00:00
352
原创 C51:独立按键(状态机法)
程序案例:(每隔10ms读取一次键值,并把读到的键值赋值给key_val,可以利用读到的键值进行各种操作)状态机法比较好理解,但是程序过于冗杂,不便于记忆。,顾名思义,就是只需要写三行程序,解放双手,简单又便于记忆。
2025-07-20 21:06:13
313
原创 C51:数码管的动态显示
由于数码管需要循环显示1-8位,所以需要编写一个数码管显示程序,并放在中断函数里。STC-ISP软件程序中的数码表包含了0-9的数字和大部分字母的大小写,非常方便。来对这两个口进行控制,方便后续的使用。STC-ISP->右上角的范例程序 ->如图红色荧光笔标注选项->向下查找即可。1.P0输出数据(期望显示的数字/英文),选通Y7C段选,关闭锁存器。2.P0输出数据(期望点亮的位),选通Y6C位选,关闭锁存器。为了更方便的去控制P0口和P2口,我们可以创建一个单独的函数。
2025-07-20 20:21:47
574
原创 scanf函数的基本用法和使用的注意事项
在C语言中,我们常常使用scanf函数来读取数据,但是scanf函数的使用,还是需要注意一些细节的,否则编译器可能会报错,或者是出现读取不了字符的后果。fgets是 C 语言标准库中用于从标准输入(包括文件流)读取字符串的函数,比 scanf和gets更安全,能防止缓冲区溢出。同样的,还是因为scanf会留下换行符\n在缓冲区中,解决办法还是在读取字符的时候在前面添加空格以跳过空白字符。这是因为scanf会留下换行符\n在缓冲区中,而%s会在遇到空白字符时停止读取,自然就读取不了了。
2025-07-09 21:30:05
288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅