- 博客(72)
- 收藏
- 关注
原创 第八章 矩阵按键实验
独立按键在于单片机连接的时候,每一个按键都需要单片机的一个I/O口,若某单片机系统需较多按键, 如果用独立按键便会占用过多的 I/O 口资源。单片机系统中 I/O 口资源往往比较宝贵, 当用到多个按键时为了减少 I/O 口引脚, 引入了矩阵按键。本章以 4*4 矩阵键盘为例讲解其工作原理和检测方法。
2025-09-10 00:02:57
859
原创 第七章 静态数码管和动态数码管显示
多位数码有两条重要的线,把公共端叫做”位选线“,连接在一起的段线叫做”段选线“,有了这两个线后,我们通过单片机及外部驱动电路就可以任意的数码管显示任意的数字了。当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线是连在一起的,独立公共端可以控制多位一体中的任意一位点亮,而段线就用来控制显示什么数字。简单总结就是:位选控制亮不亮,至于显示什么看段选我们的开发板上面使用了2个四位一体的共阴极数码管,这样可以同时显示8个数字。
2025-09-01 01:37:34
1226
原创 第五章 LED闪烁以及流水灯实验
P2^0表示P2口第0引脚是因为:Keil C51的特殊语法:在这里不是异或运算历史约定:从Intel 8051时代延续下来的语法编译器支持:Keil编译器识别并翻译这种语法地址映射:对应P2口(0xA0)的第0位这是一种编译器级别的语法糖,让程序员能够以更直观的方式操作单个引脚。
2025-08-22 02:37:11
1143
原创 笔记本电脑Windows+Ubuntu 双系统,Ubuntu无法挂载Windows的硬盘 报错问题解决
根本原因:操作中断+ Windows快速启动。进Windows。关闭快速启动(必须做)。运行chkdsk D: /f修复磁盘。永远保持Windows的“快速启动”处于关闭状态。在双系统间共享数据时,尽量在关机前确保所有文件操作都已完成。考虑使用exFAT格式创建一个单独的共享分区,exFAT对双系统的支持更简单,没有日志问题。但NTFS仍然是更安全的选择。
2025-08-21 15:52:27
1306
原创 第四章 点亮第一颗LED灯
发光二极管——百度百科所谓的LED就是发光二极管,它具有单向导通性。通过5mA点亮即可发光,电流越大越亮,但是太大会烧坏,这时候我们就会在LED管脚上串联一个电阻,目的就是限流,因此这些电阻又叫做“限流电阻”。当发光二极管发光的时候,用万用表测量它两端的电压,会得到一个电压值,这个电压又叫做发光二极管的“导通压降”。我点亮开发板的红黄绿三个LED,发现这三个LED的导通压降不一通过deepseek,我了解到以下内容来自deepseek——
2025-08-21 00:27:26
719
原创 第三章 C语言基础、工程模板创建
但是你找不到这个STC公司出品的型号,江协科技视频里给出的是Atmel的89C52,但我的keil比较新,没有atmel,所以选择Microchip的AT89C52也是可以的.选好直接点OK,然后弹出一个框,添加一个文件,点否就完事了.右击代码区,点击右键菜单的 add #include <XXXXXXX.H> 这个选项,就ok了,你也可以右键点击这个代码然后点击open document 查看这个头文件,看看能不能跟你的型号,引脚,对得上...a 打开 AiCube-ISP-v6.95Z。
2025-08-20 02:06:04
952
原创 第二章 认识开发板及前期准备 (普中A7开发板)
开发板各功能模块,如下:图片看不清的,我上传了百度网盘仅供参考,这些文件是普中官网提供的,也可以去官网找资料通过网盘分享的文件:普中-7开发板原理图.pdf链接: https://pan.baidu.com/s/1OFD9NkMpHZcyplSGceVmaQ?pwd=eqyv 提取码: eqyv。
2025-08-20 01:14:15
586
原创 第一章 认识单片机
单片机,英文Micro Controller Unit,简称MCU内部有CPU、RAM、ROM\定时器、中断系统简单来说单片机就是一个小型计算机总线(BUS)是单片机各部件之间传送信息的公共通道。单片机中有内部总线和外部总线两类,内部总线是 CPU 内部之间的连线,外部总线是指 CPU 与其它部件之间的连线;外部总线有三种: 数据总线 DB(Data Bus),地址总线 AB(Address Bus)和控制总线 CBControl Bus)。40引脚我们可以按功能分为三类。
2025-08-20 00:00:27
2053
3
转载 联想ThinkBook 16+ 2025 RTX5060 版本 安装Ubuntu 24.04.2、24.10、25.04 版本,ForcePad 压力触控板 只能点击无法滑动 问题有效解决方案
1.获取本机硬件ID (DMI Modalias)4.重启Ubuntu系统,加载配置文件。3.写入、修改并保存配置。2.创建配置目录和文件。
2025-08-07 16:13:24
767
5
原创 Ubuntu 25.04 安装 pyenv 并配置多个 python 版本
安装 Python 3.12.11 时,编译过程中缺少多个关键的依赖库,导致部分 Python 内置模块(如。前面带星号表示当前设置的python版本,这个我已经设置过了。模块缺失问题(OpenSSL)。
2025-08-07 15:45:59
1297
原创 基于 AWS-S3 协议 封装 Minio 存储客户端 简要记录
本文介绍了一个基于Minio对象存储的Java实现封装方案,主要包括四个核心组件: StoreEngine.java - 定义了存储引擎接口,包含桶管理、文件上传下载、分片上传等核心功能 MinioFileStoreEngine.java - Minio存储引擎实现类,通过AmazonS3Client实现上述接口功能 AmazonS3Config.java - S3客户端配置类,设置连接参数和认证信息 MinioConfig.java - Minio服务配置类,包含端点、密钥、桶名等信息
2025-06-21 01:41:13
342
原创 自定义注解 + AOP 实现接口鉴权和认证 简要代码记录
自定义注解 ShareCodeCheck.java。通过JWT加密,前端传递token,防止传递明文。切面 ShareCodeAspect.java。
2025-06-21 01:16:19
301
原创 Mybatis Plus + Spring 分包配置 ClickHouse 和 Mysql 双数据源
Mybatis Plus + Spring 分包配置 ClickHouse 和 Mysql 双数据源
2024-03-13 22:03:52
2499
2
原创 笔记二十五、React中setState是同步还是异步的?
在react18版本之前setState既可以是同步也可以是异步的。在Promise的状态更新、js原生事件、定时器中是同步的。在react18版本之后是setState异步的。在react的合成事件中,是异步的。如何拿到setstate更新的值。
2023-11-30 16:17:38
604
原创 笔记二十四、剖析Redux的工作流程
用做于状态管理的第三方 js 库react框架中使用,也可应用于其他的框架使用场景组件间需要共享状态和改变另一个组件的状态在react项目中可以不使用就尽量不用,复杂场景下才使用。
2023-11-30 14:46:51
335
原创 笔记二十三**、编程式路由导航
23.1 父组件引入 useNavigate。父组件 Home/ndex.jsx。子组件 classify.jsx。
2023-11-27 16:07:02
285
原创 笔记二十二、使用路由state进行传递参数
22.1 父组件设置state路由参数。父组件 Home/index.jsx。22.2 子组件获取state参数。
2023-11-27 15:27:37
575
原创 笔记二十一、使用路由search进行传递参数
使用路由search进行传递参数 实用情况比较小。20.2 子组件接收路由参数。21.1 父组件设置路由参数。
2023-11-27 14:42:31
572
原创 笔记十九*、选中高亮和嵌套路由使用
home(首页的页面)中嵌套两个字路由,并对字路由设置选中高亮。Home/index.jsx -> 类组件。路由表 routes。下面附一张文件结构图。
2023-11-27 12:05:16
497
原创 笔记十五、React中的非受控组件和受控组件
组件内部维护state,state属性和表单元素的值建立依赖关系,再通过onChange事件与setState()结合更新state属性,就能达到控制用户输入过程中表单发生的操作,控制取值的表单输入元素就叫做受控组件(类似vue的数据双向绑定)手动实现只有 vue 中才有的双向数据绑定。他自己维护了一个名叫name的参数值。
2023-10-27 11:44:35
159
原创 笔记十三、(新)深入理解React的生命周期
新版react生命周期函数对比旧生命周期函数,去除了三个生命周期函数新增了两个生命周期函数getDerivedStateFromProps // 当前组件任何时候使用props来决定state。
2023-10-26 15:29:45
178
原创 笔记十二、(旧)深入理解React的生命周期更新阶段的三种情况
三种更新阶段:setState更新阶段forceUpDate更新阶段父组件render更新阶段见图示。
2023-10-26 14:38:30
323
原创 笔记十一、(旧)深入理解React的生命周期—挂载阶段
render执行完,可以操作dom,通常请求后端接口数据,来渲染页面,开启定时器。:常用且重要的钩子函数之一,render将标签渲染在浏览器显示页面内容。:这是一个构造器,接收父组件的props和初始化state值。:组件将要挂载,在render之前执行这个函数,用的比较少。React17版本之前的生命周期函数(旧):函数里面关闭一些定时器或其他收尾的操作。forceUpDate更新阶段。父组件render更新阶段。setState更新阶段。
2023-10-26 12:43:48
190
原创 笔记九、React组件的核心属性—事件处理(handleClick事件)
handleClick 放在类 App 的原型对象上,供实例使用,在 render() 中调用时必须加 this。类中的方法默认都开启了局部的严格模式,所以 handleClick this 为 undefined。handleClick 要访问构造器的 state 就必须要改变 this 指向实例。handleClick 并不是通过实例调用的。改变构造函数中的状态state。事件的绑定和改变状态。
2023-10-26 10:44:39
500
原创 笔记七、React组件化开发练习
当用户自定义组件时,它会将 JSX 所接收的属性(attributes)以及子组件(children)转换为单个对象传递给组件,这个对象被称之为 “props”。例如,<div /> 代表 HTML 的 div 标签,而 <App /> 则代表一个组件,并且需在作用域内使用 App。React 会将以小写字母开头的组件视为原生 DOM 标签。自定义组件名称必须以大写字母开头。
2023-10-25 22:51:40
144
原创 笔记六、函数式组件和类式组件开发
这类组件被称为“函数组件”,因为它本质上就是 JavaScript 函数。在最新 react 版本官网文档已经几乎没有 class 内容,但是很多公司的项目还是旧版本 react 维护的,需要认真学习。React官网已经都是函数式组件文档,没有类组件文档,但是还是支持这种写法。使用 ES6的class 来定义组件,和上面的函数组件是一模一样的。定义组件最简单的方式就是编写 JavaScript 函数。程序入口文件 main.jsx。
2023-10-25 21:11:21
124
原创 笔记五、React脚手架项目结构信息
eslintrc.cjs ——eslint 的配置文件,通常用于设置代码风格规范、语法检查和其他的代码Lint检查。vite.config.ts ——编译工具vite的配置文件。yarn.lock ——锁定项目的依赖包版本。node_modules ——放置项目的依赖文件。src ——放置开发的代码文件。package.json ——项目依赖的描述文件。assets ——项目中的图片资源。index.html ——项目总的入口文件。
2023-10-25 18:53:14
229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅