- 博客(42)
- 收藏
- 关注
原创 编程同步与异步原理详细讲解
摘要:本文系统讲解了同步与异步编程的核心概念。同步模式任务依次执行,代码简单但效率低;异步模式通过回调/Promise/async-await等机制实现并发,特别适合I/O密集型场景。文章详细对比了两种模式的执行流程、实现方式(包括JavaScript回调地狱解决方案和Python协程),并剖析了底层事件循环机制。同时指出了异步编程的常见误区,强调异步并非万能,其核心价值在于I/O等待时释放CPU资源。最后通过"买奶茶"的生动比喻,形象说明了同步与异步的本质区别。
2026-03-21 15:43:30
296
原创 VSCODE配置skills的详细教程
本文介绍如何配置VS Code的Copilot技能提示词:1)在C盘用户目录下创建.copilopt文件夹,并按照指定格式在skills.md中添加提示词;2)在VS Code设置中搜索"skills"并添加绝对路径;3)重启VS Code后即可使用。配置完成后,用户可以通过对话框输入"最后大功告成!!!"来确认设置成功。该流程简单明了,帮助用户快速完成Copilot技能提示词的配置。
2026-03-21 15:40:39
42
原创 前后端交互原理与架构全解
本文系统介绍了现代Web应用的三层架构体系,重点解析了前后端交互的核心技术。前端部分涵盖HTML/CSS/JS三件套及框架编译原理,详细说明了HTTP请求从DNS解析到页面渲染的全过程。后端部分深入探讨了MVC分层架构、数据库连接池、ORM映射等关键技术,并对比了单体与微服务架构的差异。文章还详细讲解了Cookie/Session和JWT两种认证方式,以及Nginx反向代理、Redis缓存等性能优化方案。最后通过"提交订单"的完整数据流案例,展示了从用户操作到数据库写入的全链路技术实现,
2026-03-18 14:46:21
684
原创 FastAPI 从零开始完整学习教程
FastAPI 是一个现代、高性能的 Python Web 框架,用于构建 API。特性说明使用 Python 类型提示Starlette底层 Web 框架,提供高性能异步支持Pydantic数据验证和序列化OpenAPI自动生成 API 文档"}Pydantic 是一个数据验证库,FastAPI 用它来:定义请求/响应数据结构自动验证数据类型自动转换数据类型生成 JSON Schema(用于 API 文档)# 导入 FastAPI 核心。
2026-03-18 09:50:12
361
原创 Git 从入门到精通 —— 最全实战教程
《Git入门指南:从零掌握版本控制核心技能》 本文全面介绍Git版本控制系统,帮助开发者告别混乱的文件夹备份方式。文章从Git的基本概念入手,解释其作为分布式版本控制系统的优势,包括版本记录、多人协作、分支管理等功能。详细讲解Git安装配置、核心工作流程(工作区-暂存区-本地仓库)、基础操作(add/commit/status/diff/log)和分支管理策略。特别针对常见需求提供解决方案:版本回退的多种方式、解决合并冲突、远程仓库操作(GitHub/Gitee)以及实用技巧(stash/tag/cherr
2026-02-27 13:07:48
691
原创 【STM32专题】深入ADC外设:从SAR原理到CubeMX配置多通道DMA采集实战(基于F103C8T6)
本文以STM32F103C8T6为例,详细讲解ADC(模数转换器)的应用开发。首先介绍12位SARADC的工作原理和关键参数,重点说明时钟分频(不超过14MHz)和采样时间设置等注意事项。随后通过两个实战案例:单通道轮询采集电位器电压和多通道DMA采集(含内部温度传感器),对比不同采集模式的优缺点。文中提供了完整的CubeMX配置步骤和代码实现,并给出电压换算公式和常见问题解决方案。最后强调DMA模式在多通道高速采集中的优势,为嵌入式系统连接各类模拟传感器提供了实用指导。
2026-02-27 10:00:07
1018
原创 掌控时间的核心:STM32定时器深度解析——从PWM呼吸灯到输入捕获测脉宽
控制时间”和“测量时间”。比如:每隔 1秒 闪烁一次 LED(定时中断)。比如:控制电机转速或 LED 亮度(PWM 输出)。比如:测量超声波模块的高电平时间算出距离(输入捕获)。这些功能的背后,都是同一个外设在工作——定时器 (TIM)。本文将带你从最底层的计数原理出发,通过 CubeMX 配置和 HAL 库代码,彻底搞懂PWM 输出和输入捕获。想象一个拿着秒表的计数员。他的工作就是看着秒表,每过一个单位时间,就在纸上写一个数字:0, 1, 2, 3...
2026-02-27 08:58:00
776
原创 突破距离限制:从ESP-01S原理到MQTT上云——打造你的第一个物联网台灯
本文介绍了如何利用ESP-01S Wi-Fi模块实现远程设备控制。通过分析ESP-01S的三种工作模式,详细讲解了MQTT协议的上云原理和发布/订阅机制。文章重点阐述了硬件连接注意事项,包括3.3V供电要求,并提供了巴法云平台的注册配置指南。核心部分展示了AT指令初始化流程和STM32代码实现,包括Wi-Fi连接、MQTT订阅和中断处理逻辑。最终实现通过手机APP或语音助手远程控制LED灯开关的功能。该方案具有成本低、易实现的优势,适合物联网入门开发者参考。
2026-02-26 18:15:05
548
原创 从零开始:深入解析蓝牙HC-05模块——原理、AT配置与STM32实战控制
本文详细介绍了如何通过STM32CubeMX和HAL库实现HC-05蓝牙模块与手机的通信控制。首先解析了HC-05的串口透传原理和工作模式,然后逐步演示了使用AT指令配置模块参数的过程,包括修改蓝牙名称、配对密码和通信波特率。接着详细说明了STM32硬件连接和CubeMX配置步骤,重点讲解了串口中断接收的实现方法。最后通过手机蓝牙APP发送"1"和"0"字符,成功实现了对STM32开发板LED灯的控制。该教程为物联网开发提供了基础范例,可扩展应用于数据采集、PWM调光
2026-02-26 16:10:18
1275
原创 【STM32实战】串口打印 DHT11 温湿度数据 (HAL库 + CubeMX)
本文介绍了如何利用STM32定时器实现微秒级延时(delay_us)来驱动DHT11温湿度传感器。通过CubeMX配置定时器、串口和GPIO引脚,详细讲解了单总线通信协议、时序控制等核心内容。重点包括:1) 使用定时器实现精确的微秒延时;2) GPIO输入输出模式的动态切换;3) DHT11数据读取逻辑的实现;4) 串口打印调试技巧。文章还总结了常见问题解决方案,如printf无法输出、数据读取错误等。该案例涵盖了嵌入式开发的三大核心技能:通信协议、时序控制和调试输出。
2026-02-26 15:19:15
841
原创 【STM32专题】深入理解定时器(TIM)原理与配置 (HAL库 + CubeMX)
在嵌入式开发中,定时器(Timer)的重要性仅次于GPIO。无论是简单的LED闪烁、精确的时间控制、PWM电机驱动,还是复杂的输入捕获,都离不开定时器。很多初学者(包括曾经的我)在配置定时器时,往往对PSCARR为什么要减1?时钟源到底是多少?本文将以STM32F1/F4系列为例,从硬件原理到CubeMX配置,再到代码实战,带你彻底搞懂STM32定时器。STM32的定时器配置看似参数多,其实核心就是**“分频”与“重装载”**两个概念。PSC决定了定时器跳动的快慢。ARR决定了定时器跳动多少次触发中断。
2026-02-26 14:29:54
635
原创 devbox加cursor编写项目到上线,不到10分钟
在开始创建 Devbox 之前,需要先切换到合适的可用区。:在创建环境的页面中,选择“预配置”语言环境。:连接成功后,会生成预配置文件,此时可以开始在本地 IDE 中进行开发。:在主界面找到并点击“Devbox”选项,进入创建环境的界面。,如果没有任何报错信息,则说明环境启动成功,可以开始开发工作。:开启所需的端口,系统会自动分配一个公网域名,方便远程访问。:通过拖拽按钮,可以调整资源的大小,以满足不同的开发需求。:在 Devbox 环境中,选择你常用的本地 IDE。:点击“连接”按钮,开始连接过程。
2025-04-05 23:18:34
832
原创 docker部署java项目
`FROM openjdk:8-jdk-alpine`: 使用轻量级的 Alpine Linux 版本的 JDK8。- `COPY target/*.jar app.jar`: 将编译好的 JAR 包复制到容器中。运行容器(打开8080端口)(如果映射其他端口,记得服务器要开启相关端口的防火墙)- 使用 `ENTRYPOINT` 指定容器启动时执行的命令。- `EXPOSE 8080`: 声明容器监听的端口。2.在你的项目的文件中的target中有你的jar包。- 设置容器时区为上海时间。
2025-03-14 11:38:02
573
原创 docker部署vue项目解决跨域问题(一键docker解决)
将在当前目录下寻找Dockerfile,并根据其中的指令构建一个全新的Docker镜像,命名为"vue-student-web"。- `docker build` - 基础命令,用于构建 Docker 镜像。- `vue-student-web`: 给运行的容器指定的名称。- `-t vue-student-web` - 标签参数。- `-t` 表示为新构建的镜像设置标签(tag)- `vue-student-web` 是镜像名称。- `vue-student-web`: 容器名称。
2025-03-14 11:23:47
1475
原创 vscode插件remote——ssh连接远程服务器
首先在开始之前,你需要打开远程服务器的ssh端口和关闭防火墙(下面是本地虚拟机和远程服务器开启方法)(在阿里云平台和其他云平台的买的或者体验的服务器ssh服务已经打开,只需要开启一下22端口)5.之后你就可以进入到文件夹中,选择文件夹(此时的文件夹是你的远程服务器文件夹)2.第二步,在vscode安装插件,搜索ssh,安装第一个remote-ssh。在连接之前,需要(重置密码,连接时输入的密码就是你的服务器重置密码)3.第三步,点击左边侧边栏的图标,进行连接。(终端也是你的远程服务器终端)
2025-03-14 11:03:48
753
原创 关于uniapp使用pinia持久化配置兼容问题
destr和deep-pick-omit,导致我一直报错。进行持久化配置,使用小程序uni兼容。在实例导出文件index.ts中。持久化插件,因为它缺少两个依赖项。
2025-02-12 20:48:45
983
原创 关于创建vue项目,报错Parsing error: No Babel config file detected for
详细的去看这个,总结来就是,src资源代码目录需要与 babel.config.js处于目录下,一开始我是打开了day01文件夹,在里面又创建了day01,所以bable找不到代码。就行,这样是移除eslint检查和bable转义。所以目录不对,直接打开里面的day01文件夹就行。
2024-12-21 22:05:34
667
原创 区分前端框架中的两种路由模式:hash 模式和 history 模式
SEO(Search Engine Optimization),即搜索引擎优化,是指通过优化网站的内容和结构,提高网站在搜索引擎结果页面中的排名,从而增加网站的可见性和访问量。通过有效的SEO策略,可以提高网站的搜索引擎排名,增加曝光率和用户访问量。2.SEO不友好:搜索引擎对 # 后面的内容不敏感,可能影响 SEO。- 提高网站加载速度,确保移动设备友好,使用合适的标签和元数据。2.SEO友好:搜索引擎可以抓取到完整的 URL,有利于 SEO。- 获取其他高质量网站的链接,提高网站的权威性。
2024-12-14 16:10:16
476
原创 nodejs写后端,部署云服务器(腾讯云)
注意:如果结合前端请求,有跨域问题,我在nodejs中调用cors插件,解决跨域问题,也可以通过前端的反向与正向代理解决。1.首先,在阅读这篇文章时,保证你有一定的nodejs基础。8.我挂载在5000端口,返回控制台设置安全组规则。4.进入实例,点击登录,修改远程服务器登陆密码。2.用新人身份,体验一个月的腾讯云服务器。10.尝试访问(公网ip地址加上端口号)6.在服务器上,安装nodejs环境。访问不到公网IP地址。
2024-12-10 14:13:02
722
原创 react的正向代理配置
最近在学习react,当我用react请求nodejs搭建的服务器的时候,需要配置正向代理,配置就配置呗,但是按照以前react的版本配置,发现不行,是因为网上都说react内置了 http-proxy-middleware模块,但是我发现没有,需要自己安装。最后就是,如果你配置代理,但是没有安装http-proxy-middleware,你的react项目可能会打不开,报错拒绝访问。然后,在src目录下,搭建setupProxy.js文件,这个文件不用导出,react底层会对他进行遍历寻找。
2024-12-07 15:25:40
201
原创 关于创建react项目出现版本错误...解决办法
突然出现,我前两天还行,今天就不行了,是create-react-app今天默认更新19,但是淘宝镜像源啥的包还没更新,所以只能手动安装。虽然报错,但是文件夹创建出来了,所以可以打开,然后删除node_modules文件夹,将package中。今天,react19刚发布,我用react脚手架创建项目,发现出现。然后运行npm i 重新安装,或者pnpm i。版本控制删除掉,换成。
2024-12-06 22:57:14
1792
2
原创 当在mongodb可视化界面中,出现MongoDB Compass 报错----An error occurred while loading navigation...,解决办法.
当window电脑,用户名是中文时,会出现以上错误,并且看不见创建的文档格式,许多基础功能也不能使用。修改这台电脑名字,在修改之前先记住原来的名字,如果电脑中有许多环境变量修改以后不能用,在修改回去。没有错误,软件也能正常使用,万事大吉...在修改以后,可以测试一下自己。
2024-11-28 15:58:21
377
原创 关于uniapp中swiper组件的固定高度如何根据盒子内容进行改变
在写项目的时候,发现在swiper页面中加入写好的组件后,可能只显示轮播图,也就是大概150px的高度,这是因为swiper默认高度为150px,我上网查询几种方法,发现最好的还根据盒子高度动态绑定高度这一种兼容性最好。会在页面加载完成后被调用,确保所有的 DOM 元素都已渲染,可以进行相关的 DOM 操作。api获取到dom的属性值,注意细节就是在页面渲染以后在进行拉取,否则可能为空。这个函数是 UniApp 的生命周期函数之一。其次,查询uniapp官网,使用。如果有跟好的想法,欢迎指导。
2024-11-07 15:49:21
790
原创 关于如何去除使用unipp时,H5页面的scroll-view滚动条和app-plus主页面滚动条
在写页面是,今天偶然发现,官方文档中两个隐藏H5页面滚动条的属性值不生效,于是我上网查找总结一番,如果有相同问题的小伙伴,可以借鉴...注:这三条属性设置,应用于X轴方向没有溢出等特定场景,如果小伙伴们相关页面有相关需求,可以借鉴修改。在app.vue全局css中,添加这三句。
2024-11-06 15:54:16
581
原创 VM安装乌班图时出现的bug@
我的电脑是window11,在安装乌班图的时候,按照哔哩哔哩中,韩顺平老师的视频安装,在我的计算机库,在这个问题上浪费了我两个小时,真是服了,望伙伴们少踩一点坑,注意细节哦!只要在打开vm的时候,用管理员身份运行,再重复以上步骤,就可以安装了。
2024-10-26 15:57:42
235
原创 深入浅出-Linux-操作系统(小唐学习版)
Linux操作系统的起源可以追溯到1980年代末。当时,芬兰的计算机科学学生林纳斯·托瓦兹(Linus Torvalds)对大学使用的MINIX操作系统感到不满。他希望能够开发一个更好的类Unix操作系统,因此在1991年,林纳斯决定开始自己的操作系统项目。林纳斯在1991年发布了Linux的第一个版本(0.01),并在互联网上分享了源代码。Linux这个名字是结合了林纳斯的名字与Unix的名称而产生的。随着时间的推移,Linux迅速发展,吸引了许多开发者和爱好者参与进来,大家共同为其提供改进和扩展。
2024-10-23 15:43:13
1002
原创 使用ref和reactive时,注意整体赋值和属性赋值
前端Vue篇之Vue3响应式:Ref和Reactive_vue3中ref和reactive-CSDN博客看别人博客,可以用reative来定义响应式对象,但是并没有啥作用。所以我不懂为啥,就是记住这样。
2024-09-05 20:58:02
549
原创 关于nodejs项目启动服务器,调用接口报错的一种原因
之后运用postman调用接口就一直在哪里转圈圈,没有检测到服务器,找了一个晚上,终于解决了,所以,在写项目的时候,一定要仔细的理解和检查,出现bug在所难免,但是因为你的失误出现的浪费的时间和精力就很难受。因为这个项目是根据bilibili中某个博主打的,在学习时因为视频录制乱的原因,在导入中间件时,将解析规则中间件@escook/express-joi导入成了joi,joi的调用错误,他就一直卡在这里,运行以后程序没有报错,
2024-08-10 09:31:52
388
原创 关于bcrypt密码盐npm报错8 deprecated subdependencies found: are-we-there-yet..解决办法。
pnpm i bcrypt时报错,
2024-08-09 16:29:45
615
原创 webpack中插件--clean-webpack-plugin插件的出现的问题
注意,在命名的时候,命名的名字首字母都要大写,并且要用解构赋值的语法格式来导入。
2024-08-04 09:50:28
320
原创 git 学习笔记(欢迎大家来一起学习探讨)
我上面有查看日志,git reflog ,可以看到现在head指针指向哪一个分支,我的日志多是因为以前创建过其他的分支结构,不用管,就看h0和h1就行。这样,如果我们以后写代码,修改的结果不满意,就可以直接回去,不用面对自己修改的一片狼藉的代码发懵。在master没有修改的情况下,移动到master主线下,将hellow01,合并到主线分支上。也看见,每一个分支前面,都有一个7位版本号,用这个版本号,我们可以进行切换,用。红色代表你在仓库中,添加了一个文件,但是没有跟踪它,没有放入暂存区,使用。
2024-06-29 15:47:40
1715
原创 注意v-if与v-show的使用场景,报错Cannot set properties of null
今天在写留言墙项目,基于vue3和nodejs,mysql的前端ui页面时,我解决了困扰我两天的问题,在组件切换显示与隐藏状态的时候,我所有逻辑看起来正常不过,但是点击报错,子组件接收不到父组件传递的值,于是我换了emitt事件总线,去发送和监听事件,然后接受渲染,还是不行,我就纳闷了。6. **性能考虑**:如果元素的渲染成本较低,并且你知道它将频繁地显示和隐藏,使用 `v-show` 可以避免因 `v-if` 导致的不必要的 DOM 节点创建和销毁。但是在今天,我发现了,主要是我控制组件的方式不对,
2024-06-07 20:16:23
1401
原创 关于wps,360等流氓软件卸载不干净,从注册表彻底删除...
打开运行:win+r,输入regedit回车,即打开注册表编辑器,然后搜索夸克网盘,搜索到一个就删除掉一个,直到完全删除完为止就能够搞定。如果你还搞不定,就给我留言。前些天下载的wps突然不想用了,卸载之后,发现,在文件打开方式里面还有。wps相关的文字出现,对于这种情况,我们可以:----在查找中输入相关的删除不掉的文件就行,右键删除就行。还有其他相关的一些问题,和这个方法差不多。
2024-05-19 22:54:58
9168
4
原创 已声明“__VLS_functionalComponentProps”,但从未读取其值
找了好久,没有其他解决办法,偶然看见别人报类似的错误时插件冲突问题在vue3项目里面,所以抱着试一试的想法,把volar这个插件,也就是vue-official这个插件禁用了。之后代码正常运行出效果,我想试试是不是它的问题,于是给他启用,结果代码还是不报错,总而言之,就是它的问题,但是重装以后,就好了。今天在学习时,代码没有任何错误,但是就是报错:已声明“__VLS_functionalComponentProps”,但从未读取其值。
2024-05-14 21:35:00
1118
3
原创 关于在vue3中用pnpm创建项目的时候,出现 error (ERR_PNPM_EPERM). Will retry in 10 seconds. 2 retries left解决办法!
最后也是安装成功,皆大欢喜!只要修改该文件权限就行,
2024-05-13 09:49:31
1732
2
原创 解决新手学习vue3时,对eslint规则的错误配置,和安装!!!
这样就行了,但是我配置之后,还是会出现错误,于是我直接整体删除,重新配置,也不知道是因为啥,在配置后,错误果然消除了,但是又出现了一个标准化的空格标准,在今天刚学vue3,脚手架创建后,刚打了几行代码,vs突然报错。类似于这样的错误,在网上找了好久,都说配置。在官网上找了之后,配置。
2024-05-11 21:08:57
613
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅