当前位置: 首页 > news >正文

18-总线IIC

一、IIC

1、IIC概述

        I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS(飞利浦)公司开发用于连接微控制器及其外围设备。

它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps,一般模块是高速IIC总线。

IIC是半双工通信方式,可实现主机一对多。

SDA:数据线,用于传输数据;可主机到从机,也可以从从机到主机。

SCL:时钟线,只能由主机发送,用于数据同步,一个脉冲发送/接收一位数据。

总结:
1.同一时间只能一对一通信。2.IIC总线上只有一个主机,多个从机。3. 主机可以被切换为从机,从机也是切换为主机。
这个情况很少见,基本主机在系统开始时就设定好的。4. IIC总线有上拉电阻,作用当主机及从机释放总线(不控制总线),
由上拉电阻将总线拉高,进入空闲状态,避免总线电压不稳定。

2、I2C通信原理-I2C协议

1、空闲状态

2、开始信号

3、停止信号

4、应答信号

5、数据的有效性

这个笔记是通过模拟IIC来实现IIC总线通信正常情况下MCU需要有IIC外设,才能与从机(从机也有IIC外设)模拟IIC可以理解为:根据IIC时序,自己编写代码实现IIC通信时序。软件IIC:就是不使用外设IIC硬件,实现IIC通信时序。优点:任意两个引脚都能实现IIC总线通信,这样就连没有IIC外设的STC89C52单片机都能采集IIC总线通信。

2.1 空闲状态

        I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管(器件门)均处在截止(关闭)状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

简单理解为:SCL和SDA都处于高电平

2.2 起始信号(主机发出,起始信号是针对所有的从机)

        主机发送的起始信号,所有的从机都能接受到,作用唤醒所有的从机,等待主机下一步指令(下一步指令一般是主机发地址,从机匹配地址,如果匹配上,做数据交互准备)。

        起始信号:当SCL为高电平期间,SDA由高到低的跳变;启动信号是一种电平跳变时序(上升沿或者下降沿)信号,而不是一个电平信号(高电平或者低电平)。

注意看启动信号的时序是由左到右进行查看,哪个先变化,就先写哪个信号线代码。

2.3 停止信号(主机发出)

        停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

注意看停止信号的时序是由左到右进行查看。

2.4 数据有效性

        I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

即:数据在SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。

注意:在主机接受数据时,使用是的上面相同的时序,只不过SCL由主机发出,SDA由从机发出,那么主机要做为输入,进行接受数据。同样的道理,在SCL为低电平区间,从机在这区间可改变数据,在SCL为高电平区间保持数据的稳定。所以主机在SCL为高电平区间判断引脚的电平从而得到对应的数据。

时钟线用于同步传输数据,一个脉冲传1位数据(数据线用于传输数据),
假设一个脉冲时间10us,出就是说10us传一位数据,
那么传输速率:1/(0.00001s) = 100000bps = 100kbps

STM32发送数据

STM32接受数据

2.5 应答信号ACK

     发送器(主机STM32或者是从机)每发送一个字节,就在时钟脉冲9(前面8个脉冲周期用来发8位数据)期间释放数据线,由接收器反馈一个应答信号(反馈:发送一位数据,做为应答)。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。 

        对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。

结论:

(1)每发送(主机与从机都适用)一个字节,则会(主机与从机都适用)接受一个应答信号(信号其实就是一位数据);每接收(主机与从机都适用)一个字节,则会(主机与从机都适用)发送一位应答信号(信号其实就是一位数据)

(2)规定低电平为有效应答,表示成功接受字节;规定高电平为无效应答,表示没有成功接受字节。

(3)假设主机接受数据,如果不想再接受,则发送一个无效应答(非应答)来通知从机不要再进行传输数据。

STM32发送有效应答
Iic_Send_Ack(0);
STM32发送无效应答
Iic_Send_Ack(1);

二、AT24C02

1、 24C02简介

AT24C02是一个2K位(2048)串行CMOS 的EEPROM(只读存储器),内部含有256个8位字节(大小:256字节)。

下面信息简单了解即可,重要的是标红的部分。

与 400KHz I2C 总线兼容

1.8 到 6.0 伏工作电压范围

 低功耗 CMOS 技术

 写保护功能 当 WP 为高电平时进入写保护状态 (WP接高电平,则无法写入数据)

 页写缓冲器

 自定时擦写周期

 1,000,000 编程/擦除周期

 可保存数据 100 年

 8 脚 DIP SOIC 或 TSSOP 封装

 温度范围 商业级 工业级和汽车级

EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用

2、AT24C02引脚

3、 AT24C02地址查找

开发板上的AT24C02地址:A2 = 0, A1 = 0, A0 = 0;

MSB在左边,LSB在右边,表示先传高位数据

1 0 1 0 0 0 1 0

MSB LSB

1、LSB的意思是:全称为Least Significant Bit,在二进制数中意为最低有效位,一般来说,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。

2、MSB的意思是:全称为Most Significant Bit,在二进制数中属于最高有效位,MSB是最高加权位,与十进制数字中最左边的一位类似。

4、 AT24CO2读写时序

写时序

读时序

模拟I2C向AT24C02进行写读操作例子源码

https://download.csdn.net/download/m0_63622771/90850432

相关文章:

18-总线IIC

一、IIC 1、IIC概述 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS(飞利浦)公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间…...

【深度学习-Day 12】从零认识神经网络:感知器原理、实现与局限性深度剖析

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

力扣HOT100之二叉树:98. 验证二叉搜索树

这道题之前也刷过,自己做了一遍,发现卡在了第70多个样例,才发现自己没有利用二叉搜索树的性质,但凡涉及到二叉搜索树,应该首先考虑中序遍历!!! 被卡住的测试样例是这样的&#xff1a…...

vector(c++)

前言 正式进入学习STL的第一步就是vector容器, vector是一种用于存储可变大小数组的序列容器,就像数组一样,vector也采用的连续存储空间来存储元素。本质上讲,vector使用动态分配数组来存储它的元素。底层是一个顺序表。本文介绍…...

CAPL Class: TcpSocket (此类用于实现 TCP 网络通信 )

目录 Class: TcpSocketacceptopenclosebindconnectgetLastSocketErrorgetLastSocketErrorAsStringlistenreceivesendsetSocketOptionshutdown函数调用的基本流程服务器端的基本流程客户端的基本流程Class: TcpSocket学习笔记。来自CANoe帮助文档。 Class: TcpSocket accept /…...

C语言:gcc 如何调用 Win32 打开文件对话框 ?

在 Windows 平台上使用 gcc 调用原生 Win32 API 实现文件打开对话框是可行的,但需要直接使用 Win32 的 GetOpenFileName 函数(位于 commdlg.h 头文件,依赖 comdlg32.lib 库)。以下是完整实现步骤和代码示例: 编写 file…...

OpenHarmony:开源操作系统重塑产业数字化底座

OpenHarmony:开源操作系统重塑产业数字化底座 引言:当操作系统成为数字公共品 在万物智联时代,操作系统不再是科技巨头的专属领地。华为捐赠的OpenHarmony项目,正以开源协作模式重构操作系统产业格局。这个脱胎于商业版本的开源…...

线程同步学习

概念 有A、B、C三个线程,A线程负责输入数据,B线程负责处理数据、C线程负责输出数据,这三个线程之间就存在着同步关系,即A必须先执行,B次之,C最后执行,否则不能得到正确的结果。 那么所谓线程同…...

十二、Hive 函数

作者:IvanCodes 日期:2025年5月17日 专栏:Hive教程 在数据处理的广阔天地中,我们常常需要对数据进行转换、计算、清洗或提取特定信息。Hive 提供了强大的内置运算符和丰富的内置函数库,它们就像魔法师手中的魔法棒&…...

DeepSeek 赋能社会科学:解锁研究新范式

目录 一、DeepSeek:大语言模型中的新力量1.1 DeepSeek 技术亮点1.2 与其他模型对比 二、DeepSeek 在社会科学研究中的应用领域2.1 经济学研究2.2 社会学研究2.3 历史学研究2.4 法学研究 三、DeepSeek 应用案例深度剖析3.1 案例一:社会学研究中社会舆情分…...

java函数内的变量问题

public class VendingMachine {//设计一个类叫做VendingMachine,用这个类制造一个对象vmint price 80;int balance;//三个属性int total;void showprompt(){System.out.println("Welcome");}void insertmoney(int amount){balance balance amount;}void showBalan…...

docker部署第一个Go项目

1.前期准备 目录结构 main.go package mainimport ("fmt""github.com/gin-gonic/gin""net/http" )func main() {fmt.Println("\n .::::.\n .::::::::.\n :::::::::::\n …...

【读代码】端到端多模态语言模型Ultravox深度解析

一、项目基本介绍 Ultravox是由Fixie AI团队开发的开源多模态大语言模型,专注于实现音频-文本的端到端实时交互。项目基于Llama 3、Mistral等开源模型,通过创新的跨模态投影架构,绕过了传统语音识别(ASR)的中间步骤,可直接将音频特征映射到语言模型的高维空间。 核心优…...

管理前端项目依赖版本冲突导致启动失败的问题的解决办法

管理前端项目依赖版本冲突导致启动失败的问题,可按照以下步骤系统解决: 1. 定位冲突来源 查看错误日志:启动失败时的控制台报错通常会指出具体模块或版本问题,例如 Module not found 或 TypeError。检查依赖树:npm l…...

北京市工程技术人才职称评价基本标准条件解读

北京市工程技术人才职称评价基本标准条件 北京市工程技术人才之技术员 北京市工程技术人才之助理工程师 北京市工程技术人才之工程师 北京市工程技术人才之高级工程师 北京市工程技术人才之高级工程师(破格) 北京市工程技术人才之正高级工程师 北京市工程…...

MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试

视频讲解: MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试 继续玩MUSE Pi Pro,今天看下比较关注的gpu这块,从opencl看起,安装clinfo指令 sudo apt install clinfo 可以看到这颗GPU是Imagination的 一般嵌入式中gpu都和hos…...

Mysql数据库之集群进阶

一、日志管理 5.7版本自定义路径时的文件需要自己提前创建好文件,不会自动创建,否则启动mysql会报错 错误日志 rpm包(yum) /var/log/mysql.log 默认错误日志 ###查询日志路径 [rootdb01 ~]# mysqladmin -uroot -pEgon123 variables | grep -w log_e…...

JavaScript防抖与节流全解析

文章目录 前言:为什么需要防抖和节流基本概念与区别防抖(Debounce)节流(Throttle)关键区别防抖(Debounce)详解1. 基本防抖函数实现2. 防抖函数的使用3. 防抖函数的工作流程4. 防抖函数进阶 - 立即执行选项节流(Throttle)详解1. 基本节流函数实现时间戳法(第一次会立即执行)定…...

大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)

文章目录 大模型学习:Deepseekdify零成本部署本地运行实用教程(超级详细!建议收藏)一、Dify是什么二、Dify的安装部署1. 官网体验2. 本地部署2.1 linux环境下的Docker安装2.2 Windows环境下安装部署DockerDeskTop2.3启用虚拟机平台…...

在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程

在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程 前言:为什么需要关注移动端AI推理一、环境准备与框架编译1.1 获取NCNN源码1.2 安装必要依赖1.3 编译NCNN二、模型导出与转换2.1 生成ONNX模型2.2 转换NCNN格式三、模型量化加速3.1 生成校准数据3.2 执行量化操作四、性能测试…...

Web安全基础:深度解析与实战指南

一、Web安全体系架构的全面剖析 1.1 分层防御模型(Defense in Depth) 1.1.1 网络层防护 ​​防火墙技术​​: 状态检测防火墙(SPI):基于连接状态跟踪,阻断非法会话(如SYN Flood攻击)下一代防火墙(NGFW):集成IPS、AV、URL过滤(如Palo Alto PA-5400系列)配置示例…...

Uniapp开发鸿蒙应用时如何运行和调试项目

经过前几天的分享,大家应该应该对uniapp开发鸿蒙应用的开发语法有了一定的了解,可以进行一些简单的应用开发,今天分享一下在使用uniapp开发鸿蒙应用时怎么运行到鸿蒙设备,并且在开发中怎么调试程序。 运行 Uniapp项目支持运行到…...

Python海龟绘图(Turtle Graphics)核心函数和关键要点

以下是Python海龟绘图(Turtle Graphics)的核心函数和关键要点整理: 一、画布设置 函数/方法说明参数说明备注turtle.setup(width, height, x, y)设置画布尺寸和位置width宽度,height高度,x/y窗口左上角坐标默认尺寸80…...

如何在Cursor中高效使用MCP协议

1、Cursor介绍 Cursor是一个功能强大的开发工具,内置了聊天助手、代码自动补全和调试工具,能够与多种外部工具和服务(如数据库、文件系统、浏览器等)进行深度集成。借助MCP(Multiverse Communication Protocol&#x…...

典籍知识问答模块AI问答bug修改

一、修改流式数据处理问题 1.问题描述&#xff1a;由于传来的数据形式如下&#xff1a; event:START data:350 data:< data:t data:h data:i data:n data:k data:> data: data: data: data: data:嗯 data:&#xff0c; 导致需要修改获取正常的当前信息id并更…...

Redis 发布订阅模式深度解析:原理、应用与实践

在现代分布式系统架构中&#xff0c;实时消息传递机制扮演着至关重要的角色。Redis 作为一款高性能的内存数据库&#xff0c;其内置的发布订阅(Pub/Sub)功能提供了一种轻量级、高效的消息通信方案。本文将全面剖析 Redis 发布订阅模式&#xff0c;从其基本概念、工作原理到实际…...

通义千问-langchain使用构建(三)

目录 序言docker 部署xinference1WSL环境docker安装2拉取镜像运行容器3使用的界面 本地跑chatchat1rag踩坑2使用的界面2.1配置个前置条件然后对话2.2rag对话 结论 序言 在前两天的基础上&#xff0c;将xinference调整为wsl环境&#xff0c;docker部署。 然后langchain chatcha…...

c++ 仿函数

示例代码&#xff1a; void testFunctor() {using Sum struct MyStruct {int operator() (int a, int b) const { // 重载&#xff08;&#xff09;运算符return a b;}};Sum sum;std::cout << sum(9528, -1) << std::endl; } 打印&#xff1a; 仿函数意思是&am…...

hyper-v 虚拟机怎么克隆一台一样的虚拟机?

环境&#xff1a; hyper-v Win10专业版 问题描述&#xff1a; hyper-v 虚拟机怎么克隆一台一样的虚拟机&#xff1f; 解决方案&#xff1a; 以下是在 Hyper-V 中克隆虚拟机的几种方法&#xff1a; 方法一&#xff1a;使用导出和导入功能 导出虚拟机&#xff1a; 打开 H…...

操作系统:os概述

操作系统&#xff1a;OS概述 程序、进程与线程无极二级目录三级目录 程序、进程与线程 指令执行需要那些条件&#xff1f;CPU内存 需要数据和 无极 二级目录 三级目录...

【技巧】GoogleChrome浏览器开发者模式查看dify接口

回到目录 GoogleChrome浏览器开发者模式查看dify接口 1.搭建本地dify开发环境 参考 《 win10的wsl环境下调试dify的api后端服务(20250511发布)》 2.打开dify首页&#xff0c;进入开发者模式&#xff0c;Network页 勾选 Preserve log [图1] 3.填好用户名和密码&#xff0c;…...

Ocean: Object-aware Anchor-free Tracking

领域&#xff1a;Object tracking It aims to infer the location of an arbitrary target in a video sequence, given only its location in the first frame 问题/现象&#xff1a; Anchor-based Siamese trackers have achieved remarkable advancements in accuracy, yet…...

java中的循环结构

文章目录 流程控制顺序结构if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构 循环结构while循环do...while循环 for循环增强for循环 break continue练习案例 流程控制 顺序结构 java的基本结果就是顺序结构&#xff0c;除非特别指明&#xff0c;否则就按照…...

数学复习笔记 16

前言 例题真是经典。 background music 《青春不一样》 2.28 算一个行列式&#xff0c;算出来行列式不等于零&#xff0c;这表示矩阵式可逆的。但是这个算的秩是复合的&#xff0c;感觉没啥好办法了&#xff0c;我直接硬算了&#xff0c;之后再看解析积累好的方法。算矩阵…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类颜色QColor)

文章目录 一、概述二、核心功能三、常用函数及方法四、代码示例五、注意事项 一、概述 QColor 是用于处理颜色的类&#xff0c;支持 RGB、HSV、HSL、CMYK 等多种颜色模型&#xff0c;提供颜色创建、转换、分量操作及格式转换功能。支持透明度设置&#xff0c;可通过颜色名称或…...

【Closure-Hayd】

RNA序列本身存在结构上的物理信息&#xff0c;因此可以利用文献提供的相关方法来对RNA序列的物理特征进行更加细致的提取。 几何向量编码&#xff08;GVP模块&#xff09;​借鉴Rhodesign模型中的GVP&#xff08;Geometric Vector Perceptron&#xff09;模块&#xff0c;将每个…...

MySQL高可用架构

一、读写分离在高可用架构中的核心作用 1.读写分离与高可用的协同价值 在MySQL高可用架构中&#xff0c;读写分离不仅是性能优化的手段&#xff0c;更是提升系统容错能力的关键策略。通过将写操作&#xff08;INSERT、UPDATE、DELETE&#xff09; 集中到主节点&#xff0c;读…...

粒子群算法(PSO算法)

粒子群算法概述 1.粒子群优化算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;。粒子群优化算法是在1995年由Kennedy博士和Eberhart博士一起提出的&#xff0c;它源于对鸟群捕食行为的研究。 2.基本核心是利用群体中的个体对信息的共享从而使得整…...

信道编码技术介绍

信息与通信系统中的编码有4 种形式&#xff1a;信源编码、信道编码、密码编码和多址编码。 其中信道编码的作用是对信源经过压缩后的数据加一定数量受到控制的冗余&#xff0c;使得数据在传输中或接收中发生的差错可以被纠正或被发现&#xff0c;从而可以正确恢复出原始数据信息…...

JavaScript【4】数组和其他内置对象(API)

1.数组: 1.概述: js中数组可理解为一个存储数据的容器,但与java中的数组不太一样;js中的数组更像java中的集合,因为此集合在创建的时候,不需要定义数组长度,它可以实现动态扩容;js中的数组存储元素时,可以存储任意类型的元素,而java中的数组一旦创建后,就只能存储定义类型的元…...

【背包dp-----分组背包】------(标准的分组背包【可以不装满的 最大价值】)

通天之分组背包 题目链接 题目描述 自 01 01 01 背包问世之后&#xff0c;小 A 对此深感兴趣。一天&#xff0c;小 A 去远游&#xff0c;却发现他的背包不同于 01 01 01 背包&#xff0c;他的物品大致可分为 k k k 组&#xff0c;每组中的物品相互冲突&#xff0c;现在&a…...

docker-compose——安装mongo

编写docker-compose.yml version : 3.8services:zaomeng-mongodb:container_name: zaomeng-mongodbimage: mongo:latestrestart: alwaysports:- 27017:27017environment:- MONGO_INITDB_ROOT_USERNAMEroot- MONGO_INITDB_ROOT_PASSWORDpssw0rdvolumes:- ./mongodb/data:/data/…...

day 28

类 一个常见的类的定义包括了&#xff1a; 1. 关键字class 2. 类名 3. 语法固定符号冒号(:) 4. 一个初始化函数__init__(self) Pass占位符和缩进 Python 通过缩进来定义代码块的结构。当解释器遇到像 def, class, if, for 这样的语句&#xff0c;并且后面跟着冒号 : 时&…...

JavaScript入门【1】概述

1.JavaScript是什么? <font style"color:rgb(38,38,38);">Javascript &#xff08;简称“JS”&#xff09;是⼀种直译式脚本语⾔&#xff0c;⼀段脚本其实就是⼀系列指令&#xff0c;计算机通过这些指令来达成⽬标。它⼜是⼀种动态类型的编程语⾔。JS⽤来在⽹…...

MySQL 中 JOIN 和子查询的区别与使用场景

目录 一、JOIN:表连接1.1 INNER JOIN:内连接1.2 LEFT JOIN:左连接1.3 RIGHT JOIN:右连接1.4 FULL JOIN:全连接二、子查询:嵌套查询2.1 WHERE 子句中的子查询2.2 FROM 子句中的子查询2.3 SELECT 子句中的子查询三、JOIN 和子查询的区别3.1 功能差异3.2 性能差异3.3 使用场…...

DeepSeek 大模型部署全指南:常见问题、优化策略与实战解决方案

DeepSeek 作为当前最热门的开源大模型之一&#xff0c;其强大的语义理解和生成能力吸引了大量开发者和企业关注。然而在实际部署过程中&#xff0c;无论是本地运行还是云端服务&#xff0c;用户往往会遇到各种技术挑战。本文将全面剖析 DeepSeek 部署中的常见问题&#xff0c;提…...

Python 3.11详细安装步骤(包含安装包)Python 3.11详细图文安装教程

文章目录 前言Python 3.11介绍Python 3.11安装包下载Python 3.11安装步骤 前言 作为当前最热门的编程语言之一&#xff0c;Python 3.11 不仅拥有简洁优雅的语法&#xff0c;还在性能上实现了飞跃&#xff0c;代码运行速度提升显著。无论是初入编程的小白&#xff0c;还是经验丰…...

虚拟主播肖像权保护,数字时代的法律博弈

首席数据官高鹏律师团队 在虚拟主播行业蓬勃发展的表象之下&#xff0c;潜藏着一场关乎法律边界的隐形战争。当一位虚拟偶像的3D模型被非法拆解、面部数据被批量复制&#xff0c;运营方惊讶地发现——传统的肖像权保护体系&#xff0c;竟难以完全覆盖这具由代码与数据构成的“…...

硬件工程师笔记——二极管Multisim电路仿真实验汇总

目录 1 二极管基础知识 1.1 工作原理 1.2 二极管的结构 1.3 PN结的形成 1.4 二极管的工作原理详解 正向偏置 反向偏置 multisim使用说明链接 2 二极管特性实验 2.1 二极管加正向电压 2.2 二极管加反向电压 2.3 二极管两端的电阻 2.4 交流电下二级管工作 2.5 二极…...

学习笔记(C++篇)—— Day 6

1.内部类 如果一个类定义在另一个类的内部&#xff0c;就叫做内部类。 例如下面一个代码示例&#xff1a; class A { private:static int _k;int _h 1; public:class B // B默认就是A的友元{public:void foo(const A& a){cout << _k << endl; //OKcout <&…...