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

STM32-ADC模数转换

定义:


ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC【表示转化的范围是0-2^12 - 1】,1us转换时间 输入电压范围:0~3.3V,转换结果范围:0~4095 18个输入通道,可测量16个外部和2个内部信号源 规则组和注入组两个转换单元 模拟看门狗自动监测输入电压范围 STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道

注:单片机内部将采集到的模拟信号转换为单片机可以识别的数组信号


1.0 逐次逼近型ADC




2.0 ADC触发


ADC的触发方式有两种一种是软件的触发方式,一种是硬件的促发方式,ADC的硬件结构如下图所示:


3.0 ADC时钟


外部通道对应的GPIOA口对应引脚,ADC1和ADC2的引脚是相同的,还有双ADC模式,以下是通道和引脚的转换关系,以及对应的引脚关系图。


4.0 转换模式







二进制的特定:将数据左移一次相当于是把数据X2也就是扩大了一倍,左移了4次就相当于把结果X16,一般是选择右对齐。 


5.0 转换时间


AD转换的步骤:采样,保持量化,编码 STM32

ADC的总转换时间为:     TCONV = 采样时间【采样,保持】 + 12.5个ADC周期【量化,编码

例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期     TCONV = 1.5 + 12.5 = 14个ADC周期 = 1μs


6.0 校准


ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差

建议在每次上电后执行一次校准 启动校准前, ADC必须处于关电状态超过至少两个ADC时钟周期


7.0 硬件电路



8.0 数据手册

......


9.0 程序实现


9.0.1 时钟初始化

	// RCC开启ADC时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);// RCC开启GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 设置ADC时钟,分频系数是6分频RCC_ADCCLKConfig(RCC_PCLK2_Div6);

9.0.2 GPIO结构体初始化

	// 初始化GPIOGPIO_InitTypeDef GPIO_InitStruct;// GPIO_Mode_AIN 模拟输入模式,该模数下所有的GPIO口无效GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStruct);

9.0.3 ADC结构体初始化

	// 配置规则组通道ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);// ADC 初始化ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode 				 = ADC_Mode_Independent;      // ADC 模式,选择独立模式ADC_InitStructure.ADC_DataAlign 		 = ADC_DataAlign_Right;       // ADC 数据对齐模式ADC_InitStructure.ADC_ExternalTrigConv 	 = ADC_ExternalTrigConv_None; // ADC 触发模式ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;					  // 转换模式是单次转换还是连续

9.0.4 ADC转换

	ADC_InitStructure.ADC_ScanConvMode       = DISABLE;					  // 扫描模式ADC_InitStructure.ADC_NbrOfChannel 		 = 1;						  // 指定ADC转换的通道数目// ADC 结构体初始化ADC_Init(ADC1, &ADC_InitStructure);									  // 初始化ADC结构体// 使能ADCADC_Cmd(ADC1, ENABLE);// ADC 校准ADC_ResetCalibration(ADC1);// 获取ADC校准寄存器的状态while (ADC_GetResetCalibrationStatus(ADC1) == SET);ADC_StartCalibration(ADC1);// 等待校准是否完成while (ADC_GetCalibrationStatus(ADC1) == SET);

9.0.5 AD初始化


// AD 初始化函数
void AD_Init(void)
{// RCC开启ADC时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);// RCC开启GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 设置ADC时钟,分频系数是6分频RCC_ADCCLKConfig(RCC_PCLK2_Div6);// 初始化GPIOGPIO_InitTypeDef GPIO_InitStruct;// GPIO_Mode_AIN 模拟输入模式,该模数下所有的GPIO口无效GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStruct);// 配置规则组通道ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);// ADC 初始化ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode 				 = ADC_Mode_Independent;      // ADC 模式,选择独立模式ADC_InitStructure.ADC_DataAlign 		 = ADC_DataAlign_Right;       // ADC 数据对齐模式ADC_InitStructure.ADC_ExternalTrigConv 	 = ADC_ExternalTrigConv_None; // ADC 触发模式ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;					  // 转换模式是单次转换还是连续转换ADC_InitStructure.ADC_ScanConvMode       = DISABLE;					  // 扫描模式ADC_InitStructure.ADC_NbrOfChannel 		 = 1;						  // 指定ADC转换的通道数目// ADC 结构体初始化ADC_Init(ADC1, &ADC_InitStructure);									  // 初始化ADC结构体// 使能ADCADC_Cmd(ADC1, ENABLE);// ADC 校准ADC_ResetCalibration(ADC1);// 获取ADC校准寄存器的状态while (ADC_GetResetCalibrationStatus(ADC1) == SET);ADC_StartCalibration(ADC1);// 等待校准是否完成while (ADC_GetCalibrationStatus(ADC1) == SET);}

9.0.6 获取ADC值

// 获取ADC的值
uint16_t AD_GetValue(void)
{// 软件触发AD转换ADC_SoftwareStartConvCmd(ADC1, ENABLE);// reset 转换未完成while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);return ADC_GetConversionValue(ADC1);
}

9.0.7 ADC头文件


#ifndef __AD_H_
#define __AD_H_void AD_Init(void);
uint16_t AD_GetValue(void);#endif

9.0.8 MAIN函数


#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "AD.h"uint16_t ADValue;			//定义AD值变量
float Voltage;				//定义电压变量int main(void)
{/*模块初始化*/OLED_Init();			//OLED初始化AD_Init();				//AD初始化/*显示静态字符串*/OLED_ShowString(1, 1, "ADValue:");OLED_ShowString(2, 1, "Voltage:0.00V");while (1){ADValue = AD_GetValue();					//获取AD转换的值Voltage = (float)ADValue / 4095 * 3.3;		//将AD值线性变换到0~3.3的范围,表示电压OLED_ShowNum(1, 9, ADValue, 4);				//显示AD值OLED_ShowNum(2, 9, Voltage, 1);				//显示电压值的整数部分OLED_ShowNum(2, 11, (uint16_t)(Voltage * 100) % 100, 2);	//显示电压值的小数部分Delay_ms(100);			//延时100ms,手动增加一些转换的间隔时间}
}

10.0 AD多通道


......

相关文章:

STM32-ADC模数转换

定义: ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC【表示转化的范围是0-2^12 - 1】,1us转换时间 输…...

Springboot整合MyBatis-Plus

1、整合MyBatis-Plus 1、导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>2、配置 1&#xff09;配置数据源&#xff0c;导…...

分类、聚类与回归的评价指标

在cross_validate或cross_val_score中&#xff0c;参数scoring&#xff0c;与分类、聚类和回归算法的评价指标有关。 3.4.3. The scoring parameter: defining model evaluation rules For the most common use cases, you can designate a scorer object with the scoring pa…...

Day28下 - 大模型微调:酒店评论情感分析

一、前置准备 1. 下载 LLaMA Factory https://github.com/hiyouga/LLaMA-Factory.git 搭建过程详见&#xff1a;https://blog.csdn.net/CSBLOG/article/details/144584581 2. 选择 预训练模型 和 prompt指令模型 预训练阶段在实际工作中&#xff0c;一般是用不上的&#xff…...

企业级Nosql数据库和Redis集群

一、关系数据库和Nosql数据库 关系数据库 定义&#xff1a;关系数据库是建立在关系模型基础上的数据库。它使用表格&#xff08;关系&#xff09;来存储数据&#xff0c;通过行和列的形式组织信息。例如&#xff0c;一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级…...

代码优化方案

① 引入清晰的中间变量 即如果判断条件很复杂的情况下&#xff0c;最好的方式是引入清晰的中间变量。 isValid val > someConstant; isAllowed condition2 || condition3; isSecure condition4 && !condition5;// 有了描述性变量&#xff0c;我们就不需要再记住…...

C++直接内存管理new和delete

0、前言 C语言定义了两个运算符来分配和释放动态内存。运算符new分配内存&#xff0c;delete释放new分配的内存。 1、new动态内存的分配 1.1、new动态分配和初始化对象 1&#xff09;、new内存分配 在自由的空间分配的内存是无名的&#xff0c;new无法为其分配的对象…...

CPU过剩是什么意思? 有什么对电脑的影响吗?如何确认CPU有没有过剩

CPU 过剩通常是指计算机系统中 CPU 的性能远远超出了当前运行任务的需求。以下从产生原因和对电脑的影响为你详细介绍&#xff1a; 产生原因 硬件升级与软件发展不同步&#xff1a;用户为追求高性能提前升级了 CPU&#xff0c;而当前的软件应用程序在算法和功能上没有太大突破&…...

Git的简单介绍与如何安装Git

文章目录 前言一、初始git1.git是什么2.为什么要使用git(出现的问题)3.git是如何解决问题的 二、git的安装与卸载1.centos系统2.ubuntu系统3.windows 三、搭建git本地环境1.创建git本地仓库2.配置用户信息 总结 前言 本文简单引入git的相关内容。 一、初始git 1.git是什么 g…...

Linux vi/vim 编辑器:功能强大的文本处理工具

Linux vi/vim 编辑器&#xff1a;功能强大的文本处理工具 引言 Linux 系统中的 vi/vim 是一种功能强大的文本编辑器&#xff0c;它广泛应用于程序员、系统管理员和其他需要处理文本文件的用户群体中。vi 是 visual interface 的缩写&#xff0c;而 vim 则是 vi improved 的缩…...

计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

正则表达式 - 使用总结

正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...

性能测试04|JMeter:连接数据库、逻辑控制器、定时器

目录 一、连接数据库 1、使用场景 2、直连数据库的关键配置 3、案例 ​编辑 二、逻辑控制器 1、if控制器 2、循环控制器 3、ForEach控制器 三、定时器 1、同步定时器 2、常数吞吐量定时器&#xff08;用的少&#xff0c;了解即可&#xff09; 3、固定定时器 一、连…...

力扣刷题:二叉树OJ篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 1.单值二叉树&#xff08;1&#xff09;题目描…...

【跨域】解决SpringBoot和openresty跨域问题

平时后端只需要写一个配置类就可以解决跨域但是最近的新项目死活不行 先说结论 项目中的权限校验(也可以是其他的)拦截器优先级高于跨域拦截器导致跨域处理失效 解决办法 1.在addCorsMappings上增加 Order(value -100)// 跨域优先级最高 2.nginx放行OPTIONS请求 SpringBo…...

下载ffmpeg执行文件

打开网址&#xff1a;Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了&#xff0c;需要通过命令行进行使用&#xff1a; ffmpeg命令行使用参考&#xff1a; ffmpeg 常用命令-CSDN博客...

SQLite 实际案例研究与创新应用

SQLite 作为一种强大而简单的数据库实现&#xff0c;应用于各类场景&#xff0c;从移动应用到物联网设备&#xff0c;再到边缘计算。在本章中&#xff0c;我们将通过几个典型案例&#xff0c;探讨 SQLite 如何在实际中解决复杂问题&#xff0c;并研究其创新应用的可能性。 案例…...

C语言 递归编程练习

1.将参数字符串中的字符反向排列&#xff0c;不是逆序打印。 要求&#xff1a;不能使用C函数库中的字符串操作函数。 比如&#xff1a; char arr[] "abcdef"; 逆序之后数组的内容变成&#xff1a;fedcba 1.非函数实现&#xff08;循环&#xff09; 2.用递归方法…...

【HDU】1089 A+B for Input-Output Practice (I)

1089 AB for Input-Output Practice (I):以EOF结尾的输入 Problem Description Your task is to Calculate a b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,…...

[python3]Excel解析库-xlwings

xlwings 是一个强大的 Python 库&#xff0c;它允许你直接与 Microsoft Excel 进行交互。通过 xlwings&#xff0c;你可以轻松地在 Python 脚本或 Jupyter Notebook 中读取、写入和操作 Excel 文件&#xff0c;而无需手动打开 Excel 应用程序。此外&#xff0c;xlwings 还支持将…...

[python3]Excel解析库-xlutils

xlutils 是一组用于处理 Excel 文件的 Python 库&#xff0c;它实际上是 xlrd 和 xlwt 的扩展&#xff0c;提供了额外的功能来操作 Excel 文件。xlutils 主要由三个部分组成&#xff1a;xlutils.copy、xlutils.filter 和 xlutils.view&#xff0c;它们分别用于复制和修改现有 E…...

React中的合成事件

合成事件与原生事件 区别&#xff1a; 1. 命名不一样&#xff0c;原生用纯小写方式&#xff0c;react用小驼峰的方式 原生&#xff1a;onclick React的&#xff1a;onClick 2. 事件处理函数的写法不一样 原生的是传入一个字符串&#xff0c;react写法传入一个回调函数 3.…...

记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)

文章目录 0、总结1、背景2、端倪3、有个微软的系统更新&#xff0c;就想着更新看看&#xff08;能否冲掉问题&#xff09;4、更新没成功&#xff0c;自动重启电脑5、风险文件&#xff08;好家伙命名还挺规范&#xff0c;一看名字就知道出问题了&#xff09;6、开机有一些注册表…...

牛客网刷题 ——C语言初阶(5操作符)——BC107 矩阵转置

1.题目描述&#xff1a;BC107 矩阵转置 牛客网OJ链接 KiKi有一个矩阵&#xff0c;他想知道转置后的矩阵&#xff08;将矩阵的行列互换得到的新矩阵称为转置矩阵&#xff09;&#xff0c;请编程帮他解答。 输入描述: 第一行包含两个整数n和m&#xff0c;表示一个矩阵包含n行m列…...

【调试记录】在CARLA中插入可以播放视频的组件

〇、问题描述 做实验验证的时候&#xff0c;需要在CARLA仿真环境中添加一个可以播放视频的功能&#xff0c;查了很多现有的实验&#xff0c;基本都是插入图像&#xff0c;而对于插入视频&#xff0c;实现的方法就很麻烦了。一开始考虑的是直接用射影变换进行叠加&#xff0c;计…...

【Linux】RPMSG通讯协议介绍

RPMSG协议通讯协议介绍 RPMSG&#xff0c;全称Remote processor Messaging。是一种核间通讯协议。在Linux Kernel中&#xff0c;已经内置了RPMSG。 Linux RPMSG基于共享内存&#xff0c;利用RPMSG可以高效的实现核间通信。比如Linux与FreeRTOS、Linux与Android&#xff0c;都可…...

Branch-Solve-Merge Improves Large Language Model Evaluation and Generation

题目 分支-求解-合并改进了大型语言模型的评估和生成 摘要 大型语言模型(LLM)经常用于多方面的语言生成和评估任务&#xff0c;这些任务涉及满足复杂的用户约束或考虑多个方面和标准。然而&#xff0c;由于模型缺乏一致性&#xff0c;无法计划和分解问题&#xff0c;他们的表现…...

SqlSugar-文章目录

SqlSugar学习总结1(基础操作) SqlSugar学习总结2(主从复制-数据库配置) SqlSugar学习总结3(主从复制-读写分离) SqlSugar学习总结4(树形递归查询) SqlSugar学习总结5(映射)...

如何理解RDD,以及RDD的五大特性和五大特点。

RDD&#xff1a;英文全称Resilient Distributed Dataset&#xff0c;叫做弹性分布式数据集&#xff0c;代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。 Resilient弹性&#xff1a;RDD的数据可以存储在内存或者磁盘当中&#xff0c;RDD的数据可以分区…...

umd格式

umd格式是啥&#xff1f; umd格式是一种通用模块&#xff0c;他同时支持AMD、CJS、ESM模块和全局变量的方式 umd格式打包后的基本代码结构如下: (function (root, factory) {if (typeof define function && define.amd) {// AMDdefine([dependency], factory);} el…...

node.js之---内置模块

在 Node.js 中&#xff0c;模块系统是基于 CommonJS 模块规范 的&#xff0c;这使得开发者可以将代码分成多个独立的模块进行管理。Node.js 提供了很多 内置模块&#xff08;也称为 核心模块&#xff09;&#xff0c;这些模块可以直接在代码中使用&#xff0c;而无需安装额外的…...

linux下安装达梦数据库v8详解

目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...

深入理解 Android 中的 ApplicationInfo

深入理解 Android 中的 ApplicationInfo 在 Android 开发中&#xff0c;ApplicationInfo 是一个非常重要的类&#xff0c;它包含了关于应用程序的元信息。这些信息通常是从 AndroidManifest.xml 文件中提取的&#xff0c;开发者可以通过 ApplicationInfo 类来获取和操作这些信…...

【vLLM】使用PagedAttention 进行大型语言模型的高效内存管理

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...

STLG_01_12_程序设计C语言 - 联合体和枚举类型

在C语言中&#xff0c;联合体&#xff08;Union&#xff09;和枚举类型&#xff08;Enum&#xff09;是两种不同的数据结构&#xff0c;它们各自有特定的用途和特点。 联合体&#xff08;Union&#xff09; 联合体是一种数据结构&#xff0c;允许在相同的内存位置存储不同的数…...

ThreadLocal详解:深入探讨导致JVM内存泄露的原因及预防措施

引言 ThreadLocal 是Java提供的一个线程局部变量工具&#xff0c;它使得每个线程都可以拥有自己的变量副本&#xff0c;而这些副本对于其他线程而言是不可见的。这在多线程编程中非常有用&#xff0c;因为它可以避免共享资源带来的同步问题。然而&#xff0c;如果使用不当&…...

【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)

上效果 预期的是通过拖动一条边界线改变窗口大小&#xff0c;类似vscode里拖动效果。这个是简单的拖动实现 上代码&#xff1a; import package:flutter/material.dart;class MyDraggableViewDemo extends StatelessWidget {const MyDraggableViewDemo({super.key});override…...

【FlutterDart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)

【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector&#xff5e;简单实现&#xff08;10 /100&#xff09; 【Flutter&Dart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小&#xff08;11 /100&#xff09; 上效果 对比一下vscode的效果&…...

鸿蒙应用开发(2)

鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发&#xff08;1&#xff09;-CSDN博客 没看过前两篇的&#xff0c;建议请先看上面。 如果你学习完了前两篇&#xff0c;那么你学习这篇文章&#xff0c;就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...

js -动态主题色

学习参考来源&#xff1a; 峰华大佬&#xff1a;https://www.bilibili.com/video/BV1E64y1Z79Q/?spm_id_from333.1391.0.0&vd_sourcea0f31140205458776d3a4ef477cd6561 实际效果&#xff1a; http://www.qingkong.zone/laboratory?typetheme-color 前言 本文内容可结合上…...

connect to host github.com port 22: Connection timed out 的解决方法

原因是 Github 被 GFW 屏蔽了。 Windows 系统&#xff0c;打开 C:\Windows\System32\drivers\etc&#xff0c;复制其中的 hosts 文件至桌面&#xff0c;用文本编辑器或者其他工具打开。 复制以下内容进去&#xff1a; 140.82.114.4 github.com 151.101.1.6 github.global.ss…...

AI 角色扮演法的深度剖析与实践

&#x1f4e2;&#x1f4e2;&#x1f4e2; 大家好&#xff0c;我是云楼Yunlord&#xff0c;CSDN博客之星人工智能领域前三名&#xff0c;多年人工智能学习工作经验&#xff0c;一位兴趣稀奇古怪的【人工智能领域博主】&#xff01;&#xff01;&#xff01;&#x1f61c;&#…...

ansible-动态inventory及内置函数

一. 简述&#xff1a; 关于inventory的基本用法可以参考上一篇文章&#xff1a;ansible-inventory定义-CSDN博客 在实际线上环境中&#xff0c;单纯的靠配置文件管理&#xff0c;是一件很麻烦的事情(比如一致性问题)&#xff0c;特别是规模较大的场景下&#xff0c;会有大量主…...

【每日学点鸿蒙知识】广告ID、NFC手机充值、CSS支持语法、PC与模拟器交互、SO热更新等

1、HamonyOS 样机获取成功返回Oaid为00000000-0000-0000-0000-000000000000&#xff1f; 请求授权时需要触发动态授权弹窗,看一下是不是没有触发授权弹窗。 可以参考以下代码以及文档&#xff1a; // ets import identifier from ohos.identifier.oaid; import hilog from oh…...

MySQL 【多表查询】

一 . 概述 多表关系&#xff1a; 一对多(多对一) &#xff0c; 多对多 &#xff0c;一对一 1&#xff09; 一对一 案例: 用户 与 用户详情的关系 关系: 一对一关系&#xff0c;多用于单表拆分&#xff0c;将一张表的基础字段放在一张表中&#xff0c;其他详情字段放在另 一张表…...

第08章 存储管理(二)

一、EXT4文件系统详解 1.1 简介 1.1.1 课程引入 1.1.2 名词解释 1.1.3 类型 索引&#xff08;index&#xff09;文件系统 1.1.4 系统限制 1.1.5 图示 1.1.6 名词 1.2 inode(index node 索引节点) 1.3 block(块 文件内容&#xff09; 二、文件链接 2.1 符号连接(软连接) 2.…...

win10搭建zephyr开发环境

搭建环境基于 zephyr官方文档 基于官方文档一步一步走很快就可以搞定 一、安装chocolatey 打开官网 https://community.chocolatey.org/courses/installation/installing?methodinstall-from-powershell-v3 1、用管理员身份打开PowerShell &#xff08;1&#xff09;执行 …...

常见框架漏洞

一&#xff1a;ThinkPhp 1.搭建环境&#xff0c;访问 2.访问路径&#xff0c;进行远程代码执行 二&#xff1a;struts2 1.搭建环境进行 2.使用工具进行检测 三&#xff1a;Spring 1.搭建环境进行访问并进行抓包 2.然后抓取数据包&#xff0c;使用PATCH请求来修改 3.进入容器…...

党员学习交流平台

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端&#xff1a;Java、JavaWeb / Springboot。前端&#xff1a;Vue、HTML / CSS / Javascript 等。数据库&#xff1a;MySQL 二、相关软件&#xff08;列出的软件其一均可运行&#xff09; I…...

公司资产网站

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端&#xff1a;Java、JavaWeb / Springboot。前端&#xff1a;Vue、HTML / CSS / Javascript 等。数据库&#xff1a;MySQL 二、相关软件&#xff08;列出的软件其一均可运行&#xff09; I…...