32单片机从入门到精通之数据处理——数学运算(十三)
无论你身在何处,无论你面对什么困难,只要对自己充满信心,坚持不懈地努力,相信自己的能力,你就能战胜任何困难,实现自己的目标。不要害怕失败,因为失败并不意味着你没有能力成功,只是说明你还需要再努力一些。每一次挫折都是人生的一次锻炼,将使你变得更加坚强。无论遇到什么困难,都要勇敢地面对,不要放弃,相信自己,相信你的能力。记住,只有经历了艰辛的努力才能获得真正的成功。所以,不管遇到什么困难,都要坚持下去,直到达到自己的目标。
目录
上一张试卷
一、选择题(每题2分,共20分)
二、简答题(每题10分,共30分)
三、编程题(每题15分,共30分)
知识点讲解
1. 基本数学运算
平均值计算
最大值/最小值查找
简单的一阶低通滤波器
2. 高精度计算
浮点单元(FPU)
定点数运算
试卷
一、选择题(每题2分,共10分)
二、简答题(每题10分,共30分)
三、编程题(每题15分,共30分)
上一张试卷
一、选择题(每题2分,共20分)
-
在读取DHT22温湿度传感器数据时,以下哪个库可以简化操作?
- B. DHT.h
-
I2C通信中,用于标识数据传输开始的是:
- C. 起始条件
-
LM35温度传感器输出的电压值与摄氏度之间的关系是:
- B. 每10mV对应1°C
-
PWM信号的主要用途之一是:
- B. 控制电机速度或LED亮度
-
下列哪种传感器通常使用I²C接口进行通信?
- B. ADXL345
二、简答题(每题10分,共30分)
-
描述如何使用Arduino平台上的DHT库读取DHT22传感器的数据。
使用Arduino平台上的
DHT
库可以大大简化对DHT22温湿度传感器的操作。首先需要包含DHT.h
库文件,然后定义连接传感器的引脚以及传感器类型。通过创建一个DHT
类的对象,并调用其提供的方法如readHumidity()
和readTemperature()
来获取湿度和温度数据。在程序初始化阶段(setup()函数),应该初始化串口通信以便于调试信息的输出,并调用dht.begin()
来启动传感器。在主循环中,可以通过这些API读取并处理传感器数据。 -
解释如何利用微控制器内置的ADC将来自LM35温度传感器的模拟信号转换为数字值,并计算出实际温度。
微控制器通常配备有模数转换器(ADC),它能够将模拟电压值转换成数字表示形式。对于LM35温度传感器,其输出电压与摄氏温度成线性关系,即每上升1°C,输出电压增加10mV。为了得到实际温度,我们先使用
analogRead()
函数读取连接到指定模拟输入引脚上的电压值,该函数返回一个介于0到1023之间的整数值,代表了0到5V的电压范围。接下来,根据比例换算公式voltage = sensorValue * (5.0 / 1023.0)
计算实际电压,再通过temperatureC = voltage * 100.0
将电压转换为摄氏温度。 -
说明PWM(脉宽调制)的工作原理以及它在控制电机或其他执行机构中的应用。
PWM是一种用来生成具有可变占空比的方波的技术,其中周期固定但高电平时间(占空比)可以根据需要调整。当应用于电机驱动时,PWM允许改变施加给电机的平均电压,从而有效地调节电机的速度或扭矩。同样地,PWM也可以用来调整LED灯的亮度,通过快速切换LED的开关状态,在视觉上实现亮度的变化。此外,PWM还可以用于其他类型的执行器,例如伺服电机的位置控制等。
三、编程题(每题15分,共30分)
- 编写一段Arduino代码,初始化一个DHT22传感器并打印温度和湿度值。
#include <DHT.h>#define DHTPIN 2 // DHT22 数据引脚连接到数字引脚2 #define DHTTYPE DHT22 // 指定使用的是DHT22型号DHT dht(DHTPIN, DHTTYPE); // 创建DHT对象void setup() {Serial.begin(9600); // 初始化串行通信,波特率为9600dht.begin(); // 初始化DHT传感器 }void loop() {float humidity = dht.readHumidity(); // 读取湿度float temperature = dht.readTemperature(); // 读取温度if (isnan(humidity) || isnan(temperature)) { // 检查是否成功读取到了有效数值Serial.println("Failed to read from DHT sensor!");return;}// 打印湿度和温度值到串口监视器Serial.print("Humidity: ");Serial.print(humidity);Serial.print("% Temperature: ");Serial.print(temperature);Serial.println("°C");delay(2000); // 等待两秒再读取新数据 }
- 编写一段Arduino代码,从模拟输入读取LM35温度传感器的电压值,将其转换为摄氏度,并通过串口打印出来。
const int analogPin = A0; // 定义模拟输入引脚void setup() {Serial.begin(9600); // 初始化串行通信,波特率为9600 }void loop() {int sensorValue = analogRead(analogPin); // 读取模拟引脚上的电压值// 将ADC值转换为实际温度(假设使用LM35,每10mV对应1°C)float voltage = sensorValue * (5.0 / 1023.0); // 转换为电压值float temperatureC = voltage * 100.0; // 转换为摄氏度// 打印温度值到串口监视器Serial.print("Temperature: ");Serial.print(temperatureC);Serial.println("°C");delay(1000); // 等待一秒再读取新数据 }
这份试卷涵盖了基本的传感器接口知识,包括如何读取温度、湿度、加速度计等传感器的数据,处理模拟信号输入,以及控制PWM输出。
知识点讲解
在嵌入式系统中,进行数学运算是常见的任务,包括但不限于平均值、最大最小值的查找、滤波算法等。根据应用的需求和处理器的能力,可以选择使用浮点运算或定点数运算来实现这些功能。下面将详细讲解如何在嵌入式环境中执行基本的数学运算,并提供相应的代码示例及注释。
1. 基本数学运算
平均值计算
知识点讲解:
平均值(Mean)是统计学中最常用的度量之一,它反映了数据集的一般水平。对于一组数值 x1,x2,...,xnx1,x2,...,xn,其平均值可以通过将所有数值相加后除以数值的数量 nn 来计算:
mean=x1+x2+...+xnnmean=nx1+x2+...+xn
代码及注释:
#include <stdio.h>// 函数:计算数组中所有元素的平均值 float calculate_average(int array[], int size) {float sum = 0; // 初始化累加器为0for (int i = 0; i < size; i++) {sum += array[i]; // 将每个元素加入到累加器中}return sum / size; // 返回平均值,即总和除以元素数量 }int main() {int data[] = {1, 2, 3, 4, 5}; // 定义一个整型数组int size = sizeof(data) / sizeof(data[0]); // 计算数组大小// 调用函数并打印结果printf("Average: %.2f\n", calculate_average(data, size));return 0; }
最大值/最小值查找
知识点讲解:
为了找到一组数据的最大值或最小值,我们需要遍历整个数据集,并且不断更新当前已知的最大值或最小值。开始时可以假设第一个元素就是最大/最小值,然后逐个比较其他元素。
代码及注释:
#include <stdio.h>// 函数:查找数组中的最大值和最小值 void find_max_min(int array[], int size, int *max, int *min) {*max = *min = array[0]; // 初始化最大值和最小值为第一个元素for (int i = 1; i < size; i++) {if (array[i] > *max) *max = array[i]; // 更新最大值if (array[i] < *min) *min = array[i]; // 更新最小值} }int main() {int data[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; // 定义一个整型数组int size = sizeof(data) / sizeof(data[0]);int max, min;// 调用函数并打印结果find_max_min(data, size, &max, &min);printf("Max: %d, Min: %d\n", max, min);return 0; }
简单的一阶低通滤波器
知识点讲解:
滤波器用于减少信号中的噪声成分。一阶低通滤波器是一种简单的线性滤波器,它允许低频信号通过而衰减高频信号。它可以用来平滑快速变化的数据序列,如传感器读数。公式如下:
y[n]=α⋅y[n−1]+(1−α)⋅x[n]y[n]=α⋅y[n−1]+(1−α)⋅x[n]
其中 αα 是介于0到1之间的滤波系数,y[n]y[n] 是当前输出,y[n−1]y[n−1] 是上一次输出,x[n]x[n] 是当前输入。
代码及注释:
#include <stdio.h>#define FILTER_COEFFICIENT 0.9 // 滤波系数,接近1表示更慢响应,但更好的平滑效果// 函数:实现一阶低通滤波器 float low_pass_filter(float input, float previous_output) {return FILTER_COEFFICIENT * previous_output + (1 - FILTER_COEFFICIENT) * input; }int main() {float input_samples[] = {1.0, 2.0, 3.0, 2.5, 2.0, 1.5, 1.0}; // 输入样本int num_samples = sizeof(input_samples) / sizeof(input_samples[0]);float output = 0.0; // 初始化输出值为0// 对每个输入样本应用滤波器for (int i = 0; i < num_samples; i++) {output = low_pass_filter(input_samples[i], output); // 更新输出printf("Filtered Output: %.2f\n", output); // 打印过滤后的输出}return 0; }
2. 高精度计算
浮点单元(FPU)
知识点讲解:
现代微控制器通常内置了硬件浮点单元(FPU),可以直接支持IEEE 754标准的单精度(32位)和双精度(64位)浮点数运算。这使得执行复杂的数学运算更加容易,并且能够提供更高的精度。然而,浮点运算相对消耗更多的资源,因此需要权衡性能和功耗。
注意事项:
- 使用浮点数时应注意溢出、舍入误差等问题。
- 如果可能的话,尽量减少不必要的浮点运算,以节省资源。
定点数运算
知识点讲解:
对于没有FPU或者为了节省资源的情况,可以采用定点数运算。定点数是一种模拟浮点数的方式,但只使用整数表示法。开发者必须明确指定小数点的位置,并手动处理溢出等问题。虽然这种方法牺牲了一些灵活性和易用性,但它可以在资源受限的环境中提供足够的精度,同时保持较低的能耗。
注意事项:
- 在设计定点算法时,需考虑数值范围和精度要求。
- 必须小心处理乘法和除法操作,因为它们可能导致溢出或不准确的结果。
上述代码片段展示了如何在C语言中实现基本的数学运算以及简单的滤波算法。当涉及到更复杂的应用时,可能还需要考虑数值稳定性、边界条件处理等因素。此外,在选择浮点还是定点运算时,应该基于具体应用场景的要求来决定,考虑到精度需求、性能限制和功耗等因素。希望这些内容能帮助你更深入地理解各个知识点,并且能够根据提供的代码示例快速上手实践。
试卷
一、选择题(每题2分,共10分)
-
在计算平均值时,如果数据集为 x1,x2,...,xnx1,x2,...,xn,则平均值的公式是:
- A. mean=x1+x2+...+xnn+1mean=n+1x1+x2+...+xn
- B. mean=x1+x2+...+xnnmean=nx1+x2+...+xn
- C. mean=x1+x2+...+xn−1nmean=nx1+x2+...+xn−1
- D. mean=x1+x2+...+xn−1n−1mean=n−1x1+x2+...+xn−1
-
下列哪种方法可以用来查找一组数据的最大值?
- A. 遍历数组并更新最大值
- B. 对数组进行排序后取第一个元素
- C. 计算所有元素的和然后除以元素数量
- D. 取所有元素的乘积再开平方根
-
一阶低通滤波器的主要作用是什么?
- A. 提高信号频率
- B. 减少高频噪声
- C. 增加信号幅度
- D. 改变信号相位
-
在嵌入式系统中,为了节省资源而选择不使用浮点运算时,通常会采用什么方式来替代?
- A. 整数运算
- B. 定点数运算
- C. 字符串运算
- D. 布尔运算
-
浮点单元(FPU)能够支持哪种标准的浮点数运算?
- A. IEEE 754
- B. ASCII
- C. Unicode
- D. UTF-8
二、简答题(每题10分,共30分)
-
描述如何在嵌入式系统中计算一组数值的平均值,并提供一个简单的C语言代码示例。
-
解释如何在嵌入式系统中找到一组数值的最大值和最小值,并给出相应的C语言代码。
-
说明一阶低通滤波器的工作原理及其在嵌入式应用中的实际用途,并附上一段C语言代码实现。
三、编程题(每题15分,共30分)
-
编写一段C语言代码,初始化一个包含若干整数的数组,并计算这些整数的平均值。
-
编写一段C语言代码,从用户输入获取一系列整数,存储在一个动态分配的数组中,然后找到这个数组中的最大值和最小值,并通过屏幕输出。
相关文章:
32单片机从入门到精通之数据处理——数学运算(十三)
无论你身在何处,无论你面对什么困难,只要对自己充满信心,坚持不懈地努力,相信自己的能力,你就能战胜任何困难,实现自己的目标。不要害怕失败,因为失败并不意味着你没有能力成功,只是…...
latex_学习
参考: https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_3)https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_2)https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_1) …...
小程序textarea组件键盘弹起会遮挡住输入框
<textarea value"{{remark}}" input"handleInputRemark" ></textarea> 如下会有遮挡: 一行代码搞定 cursor-spacing160 修改后代码 <textarea value"{{remark}}" input"handleInputRemark" cursor-spacin…...
vue之element-ui文件上传(二)
一、点击上传,使用默认的action上传,添加校验,上传成功后,去除校验: <el-form-item label"文件md5" prop"fileMd5"><el-uploadv-if"!form.fileMd5"v-model"form.fileMd5&…...
DC/AC并网逆变器模型与仿真MATLAB
DC/AC并网逆变器是一种将直流电(DC)转化为交流电(AC),并将其与电网并联的设备。它的核心功能是实现直流电源(如光伏电池板或储能电池)与电网的有效连接,同时保证输出电能质量满足电网…...
python面向对象
面向对象简介 python完全采用了面向对象的思想,是真正面向对象的变成语言,完全支持面向对象的基本功能,例如:继承、多态、封装等 python中,一切皆为对象。前面学习的数据类型、函数等都是对象 面向过程和面向对象思…...
【UI自动化测试】selenium八种定位方式
🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介:本人编程小白,正在学习互联网求职知识…… 如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬&am…...
基于物联网疫苗冷链物流监测系统设计
1. 项目开发背景 随着全球对疫苗运输要求的提高,特别是针对温度敏感型药品(如疫苗)的冷链管理,如何保证疫苗在运输过程中的温度、湿度、震动等环境因素的稳定性已成为亟需解决的问题。疫苗运输过程中,任何温度或湿度的…...
实训云上搭建集群
文章目录 1. 登录实训云1.1 实训云网址1.2 登录实训云 2. 创建网络2.1 网络概述2.2 创建步骤 3. 创建路由器3.1 路由器名称3.1 创建路由器3.3 查看网络拓扑 4. 连接子网5. 创建虚拟网卡5.1 创建原因5.2 查看端口5.3 创建虚拟网卡 6. 管理安全组规则6.1 为什么要管理安全组规则6…...
【网页自动化】篡改猴入门教程
安装篡改猴 打开浏览器扩展商店(Edge、Chrome、Firefox 等)。搜索 Tampermonkey 并安装。 如图安装后,浏览器右上角会显示一个带有猴子图标的按钮。 创建用户脚本 已进入篡改猴管理面板点击创建 脚本注释说明 name:脚本名称。…...
(概率论)无偏估计
参考文章:(15 封私信 / 51 条消息) 什么是无偏估计? - 知乎 (zhihu.com) 首先,第一个回答中,马同学图解数学讲解得很形象, 我的概括是:“注意,有一个总体的均值u。然后,如果抽样n个&…...
JavaScript 正则表达式
JavaScript 正则表达式(RegEx)是一种强大的工具,用于在字符串中查找匹配的模式、替换文本,或者验证输入的格式。下面是一些常用的正则表达式操作和语法: 常用正则表达式符号: .:匹配任意字符(除了换行符)。^:匹配输入字符串的开始。$:匹配输入字符串的结束。[]:定…...
Swift语言的正则表达式
Swift语言的正则表达式 正则表达式是一种用于匹配字符串的强大工具,它可以帮助开发者在文本处理中高效地搜索和操作字符串。在Swift语言中,正则表达式的支持是通过Foundation框架提供的。本文将全面介绍Swift中的正则表达式,从基础知识到进阶…...
Matlab 数据处理与可视化的多元拓展应用(具体代码分析)
一、代码整体功能概述: 该代码主要实现了以下几个功能: 从文件(part1.txt)中读取数据,并提取第二列数据,将其存储在 originalColumnData 中。对原始数据进行可视化,包括绘制置零前数据的折线图…...
小程序与内嵌网页的数据通信
小程序与内嵌网页的数据通信 前言 微信小程序提供了web-view组件,允许开发者在小程序中嵌入网页。然而,由于小程序和网页运行在不同的环境中,它们之间的通信就需要依赖特定的机制来实现。然而我们日常的需求中,很多的时候都涉及…...
【学习笔记】数据结构(十一)
外部排序 文章目录 外部排序11.1 外存信息的存取11.2 外部排序的方法11.3 多路平衡归并的实现 - 增加k11.4 置换-选择排序 - 减少m11.5 最佳归并树 外部排序 指的是大文件的排序,即待排序的记录存储在外存储器 上,在排序过程中需进行多次的内、外存之间的…...
【Logstash03】企业级日志分析系统ELK之Logstash 过滤 Filter 插件
Logstash 过滤 Filter 插件 数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构, 并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。 Logstash 能够动态地转换和解析数据&a…...
深度学习模型部署——基于Onnx Runtime的深度学习模型CPU与GPU部署(C++实现)
1.概述 许多机器学习和深度学习模型都是在基于 Python 的框架中开发和训练的,例如 PyTorch 和 TensorFlow 等。但是,当需要将这些训练好模型部署到生产环境中时,通常会希望将模型集成到生产流程中,而这些流程大多是用 C 编写的&a…...
Selenium 的四种等待方式及使用场景
Selenium 的四种等待方式及使用场景 隐式等待(Implicit Wait)显式等待(Explicit Wait)自定义等待(Custom Wait)固定等待(Sleep) 1. 隐式等待 定义: 隐式等待是为 WebD…...
攻防世界 ics-07
点击之后发现有个项目管理能进,点进去,点击看到源码,如下三段 <?php session_start(); if (!isset($_GET[page])) { show_source(__FILE__); die(); } if (isset($_GET[page]) && $_GET[page] ! index.php) { include(flag.php);…...
一文读懂「LoRA」:大型语言模型的低秩适应
LoRA: Low-Rank Adaptation of Large Language Models 前言 LoRA作为大模型的微调框架十分实用,在LoRA出现以前本人都是通过手动修改参数、优化器或者层数来“炼丹”的,具有极大的盲目性,但是LoRA技术能够快速微调参数,如果LoRA…...
新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解
首次突破月交付2万辆规模的小鹏汽车,稳吗? 本周,高工智能汽车研究院发布的最新监测数据显示,2024年11月,小鹏汽车在国内市场(不含出口)交付量(上险口径,下同)…...
dockerfile 中 #(nop)
在 Dockerfile 中,#(nop) 通常出现在 docker history 命令的输出中。以下是对它的详细解释: 背景 当你使用 docker history <image_name> 命令查看 Docker 镜像的构建历史时,你可能会看到 #(nop) 这样的标记。这是因为 Docker 镜像由…...
升级 Spring Boot 3 配置讲解 —— 为何 SpringBoot3 淘汰了 JDK8?
学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕! 随着 Spring Boot 3 的发布,许多开发者发现了一个重要的变化:Spring Boot 3 不再支持 JDK 8。这一变化引发了不少讨论,尤其是对于那些仍然在使用 JDK …...
IT面试求职系列主题-人工智能(一)
想成功求职,必要的IT技能一样不能少,再从人工智能基础知识来一波吧。 1)您对人工智能的理解是什么? 人工智能是计算机科学技术,强调创造能够模仿人类行为的智能机器。这里智能机器可以定义为能够像人一样行动、像人一…...
JVM 优化指南
JVM 优化指南 1. JVM 参数配置 1.1 基础参数配置 设置堆内存大小 -Xms2048m -Xmx2048m 设置新生代大小 -Xmn1024m 设置元空间大小 -XX:MetaspaceSize256m -XX:MaxMetaspaceSize256m 设置线程栈大小 -Xss512k1.2 垃圾回收器配置 使用 G1 垃圾回收器 -XX:UseG1GC 设置期望停顿…...
windows下编写的shell脚本在Linux下执行有问题解决方法
前言: 这个问题在实际工作中经常会遇到(非语法错误),脚本来源有些是自己在windows系统编写的、有些是从别人那里copy来的,还有些原本是好的被别人拿到windows下修改了一些内容,总之各种场景,但是如果是一个内容比较多的…...
使用 SQL 和表格数据进行问答和 RAG(6)—将指定目录下的 CSV 或 Excel 文件导入 SQLite 数据库
将指定目录下的 CSV 或 Excel 文件导入 SQLite 数据库。以下是详细代码逻辑: 1. 类结构 该类包含三个主要方法: _prepare_db:负责将文件夹中的 CSV 和 XLSX 文件转换为 SQL 表。_validate_db:用于验证 SQL 数据库中创建的表是否…...
【算法】算法大纲
这篇文章介绍计算机算法的各个思维模式。 包括 计数原理、数组、树型结构、链表递归栈、查找排序、管窥算法、图论、贪心法和动态规划、以及概率论:概率分治和机器学习。没有办法逐个说明,算法本身错综复杂,不同的算法对应着不同的实用场景,也需要根据具体情况设计与调整。…...
vue(2,3), react (16及以上)开发者工具资源
在前端开发的广阔领域中,Vue.js 和 React.js 作为两大主流框架,各自拥有庞大的用户群体和丰富的生态系统。为了帮助开发者更高效地进行调试和开发,Vue Devtools 和 React 开发者工具应运而生,成为这两个框架不可或缺的辅助工具。本…...
系统编程(网络,文件基础)
网络链接 虚拟机和主机之间网络连接的主要模式有三种,分别是桥接模式(Bridged)、网络地址转换模式(NAT)以及主机模式(Host-Only)。以下是这三种模式的详细解释: 一、桥接模式&…...
重温设计模式--13、策略模式
策略模式介绍 文章目录 策略模式介绍C 代码示例 策略模式是一种行为设计模式,它允许在运行时选择算法的行为。该模式将算法的定义和使用分离开来,使得算法可以独立于使用它的客户端而变化,提高了代码的灵活性和可维护性。 其主要包含以下几个…...
数字IC设计高频面试题
在数字IC设计领域,面试是评估候选人技术能力和问题解决能力的重要环节。数字IC设计的复杂性和要求在不断提高。面试官通常会提出一系列面试题,以考察应聘者在数字设计、验证、时钟管理、功耗优化等方面的专业知识和实践经验。 这些题目不仅涉及理论知识…...
C#异步多线程——ThreadPool线程池
C#实现异步多线程的方式有多种,以下总结的是ThreadPool的用法。 线程池的特点 线程池受CLR管理,线程的生命周期,任务调度等细节都不需要我们操心了,我们只需要专注于任务实现,使用ThreadPool提供的静态方法把我们的任…...
矩母函数(MGF)
矩母函数(MGF)简介 矩母函数(Moment Generating Function,MGF)是概率统计中描述随机变量分布特征的重要工具。MGF的主要用途是通过导数来计算随机变量的矩(比如均值、方差等),同时它…...
【技术支持】安卓无线adb调试连接方式
Android 10 及更低版本,需要借助 USB 手机和电脑需连接在同一 WiFi 下;手机开启开发者选项和 USB 调试模式,并通过 USB 连接电脑(即adb devices可以查看到手机);设置手机的监听adb tcpip 5555;拔掉 USB 线…...
OpenCV相机标定与3D重建(46)将三维空间中的点投影到二维图像平面上函数projectPoints()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将3D点投影到图像平面上。 cv::projectPoints 是 OpenCV 库中的一个函数,用于将三维空间中的点投影到二维图像平面上。这个过程涉及到…...
Android wifi常见问题及分析
参考 Android Network/WiFi 那些事儿 前言 本文将讨论几个有意思的网络问题,同时介绍 Android 上常见WiFi 问题的分析思路。 网络基础Q & A 一. 网络分层缘由 分层想必大家很熟悉,是否想过为何需要这样分层? 网上大多都是介绍每一层…...
如何用 ESP32-CAM 做一个实时视频流服务器
文章目录 ESP32-CAM 概述ESP32-S 处理器内存Camera 模块MicroSD 卡槽天线板载 LED 和闪光灯其他数据手册和原理图ESP32-CAM 功耗 ESP32-CAM 引脚参考引脚排列GPIO 引脚哪些 GPIO 可以安全使用?GPIO 0 引脚MicroSD 卡引脚 ESP32-CAM 的烧录方式使用 ESP32-CAM-MB 编程…...
编译与汇编
本文来自《程序员的自我修养》 编译过程是把预处理完的文件进行一系列词法分析,语法分析,语义分析以及优化后生成相应的汇编文件代码。 现在版本的GCC把预编译和编译两个步骤合并为一个步骤。 gcc -S HelloWorld.c HelloWorld.sint main() {//test/* …...
Linux入门攻坚——43、keepalived入门-1
Linux Cluster(Linux集群的类型):LB、HA、HPC,分别是负载均衡集群、高可用性集群、高性能集群。 LB:lvs,nginx HA:keepalived,heartbeat,corosync,cman HP&am…...
备考蓝桥杯:顺序表相关算法题
目录 询问学号 寄包柜 移动0 颜色分类 合并两个有序数组 物品移动 询问学号 我们的思路:创建一个顺序表存储从1开始依次存放进入教室的学生学号,然后查询 #include <iostream> #include <vector> using namespace std; const int N 2…...
【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言:...
Vue3 自定义hook
文章目录 Vue3 自定义hook概述用法 Vue3 自定义hook 概述 Vue3推荐利用Vue的组合式API函数进行代码封装,这种封装方式统称为自定义hook。 用法 定义 hook/countHook.js: import {computed, ref, watch} from "vue";export default (initC…...
【VBA】【EXCEL】将某列内容横向粘贴到指定行
Sub CopyRowToColumn()On Error GoTo ErrorHandler 添加错误处理Application.ScreenUpdating FalseApplication.Calculation xlCalculationManualApplication.EnableEvents False 禁用事件处理Dim lastCol As LongDim lastRow As LongDim i As Long, colCount As LongDim …...
使用Llama 3.1创建合成数据集以调优你的大型语言模型
使用Llama 3.1创建合成数据集以调优你的大型语言模型 在数据驱动的人工智能领域,数据是核心资产。开发高质量数据集既复杂又昂贵,因此很多实验室和开发者选择使用合成数据集。本文将介绍如何利用大型语言模型Llama 3.1 405B创建合成数据集,并…...
【Ubuntu22.04】VMware虚拟机硬盘扩容
1.首先打开虚拟机设置 2.根据需要对硬盘扩展 这边提示我们还需要进入虚拟机在内部分区 3.安装界面化磁盘管理工具 # 安装 sudo apt install gparted# 启动 sudo gparted调整硬盘大小 调整的时候会提示我们硬盘是只读的,因此还要进行操作 新建终端重新挂载文件系…...
初学stm32 --- DMA直接存储器
目录 DMA介绍 STM32F1 DMA框图 DMA处理过程 DMA通道 DMA优先级 DMA相关寄存器介绍 F1 DMA通道x配置寄存器(DMA_CCRx) DMA中断状态寄存器(DMA_ISR) DMA中断标志清除寄存器(DMA_IFCR) DMA通道x传输…...
reactor中的并发
1. reactor中的并发有两种方式 1.1 flatmap,底层是多线程并发处理。在reactor的演讲中,flatmap对于io类型的并发效果较好. flamap有两个参数: int concurrency, int prefetch。分别代表并发的线程数和缓存大小 注意凡是参数中有prefetch的,都…...
HTML - <script>,<noscript>
<script>标签用于在网页插入脚本,<noscript>标签用于指定浏览器不支持脚本时的显示内容。 1.<script> <script>用于加载脚本代码,目前主要是加载 JavaScript 代码。 <script> console.log(hello world); </script&g…...