如何设计一款智能手表的电子系统:从选择MCU到PCB设计
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:趣享先生的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:C、C++学习分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:如何设计一款智能手表的电子系统:从选择MCU到PCB设计
文章目录
- 引言
- 选择合适的微控制器(MCU)和传感器
- 1. 需求分析
- 2. MCU选择
- 3. 传感器选择
- 创建电子电路的原理图
- 1. 原理图设计步骤
- 1.1 确定电路功能模块
- 1.2 选择电路设计软件
- 1.3 绘制原理图
- 1.4 检查原理图
- 2. 元件库管理
- 3. 电气连接的注意事项
- 4. 示例原理图
- 5. 综述
- 确保原理图符合安全标准
- 1. 理解安全标准
- 2. 电气安全
- 2.1 过压和过流保护
- 2.2 隔离设计
- 2.3 绝缘材料
- 3. 电磁兼容性(EMC)
- 3.1 设计良好的接地系统
- 3.2 滤波和屏蔽
- 3.3 信号线布局
- 4. 设计验证与测试
- 4.1 设计规则检查(DRC)
- 4.2 安全性测试
- 4.3 EMC测试
- PCB外形设计
- 1. 外形尺寸
- 1.1 根据产品外壳设计
- 1.2 考虑组件布局
- 2. 机械设计
- 2.1 机械强度
- 2.2 安装方式
- 3. 材料选择
- 4. 设计工具
- 5. 设计验证
- 规划关键组件的位置
- 1. 组件布局原则
- 1.1 信号完整性
- 1.2 热管理
- 2. 机械装配
- 3. 布局优化
- 4. 设计验证
- 按照高速信号设计规则进行布线
- 1. 高速信号的特性
- 2. 布线原则
- 2.1 短而直的布线
- 2.2 差分信号对
- 2.3 地平面设计
- 3. 设计规则
- 3.1 最小间距
- 3.2 阻抗匹配
- 3.3 过孔设计
- 4. 工具使用
- 5. 验证方法
- 5.1 设计规则检查(DRC)
- 5.2 信号完整性分析
- 5.3 电磁兼容性测试
- 结论
引言
随着科技的不断进步,智能穿戴设备已逐渐融入我们的日常生活,智能手表作为其中的重要代表,凭借其便携性和多功能性,受到了广泛的关注和喜爱。智能手表不仅可以帮助用户监测健康数据,如心率和步数,还能实现信息通知、运动追踪等多种功能。然而,设计一款高性能的智能手表并非易事,它涉及到多个技术领域的知识,包括电子电路设计、嵌入式系统开发和PCB布局等。
在这篇博文中,我们将深入探讨智能手表电子系统设计的各个关键步骤,从选择合适的微控制器(MCU)和传感器开始,到创建电路原理图、进行PCB设计和布线。通过详细的步骤解析和代码示例,读者将能够更好地理解这一复杂过程,并为自己的智能手表项目打下坚实的基础。无论你是电子工程师、嵌入式开发者,还是对智能设备设计感兴趣的爱好者,这篇博文都将为你提供有价值的见解和实用的指导。
选择合适的微控制器(MCU)和传感器
在设计智能手表的电子系统时,选择合适的微控制器(MCU)和传感器是至关重要的第一步。这一选择将直接影响到手表的性能、功耗、功能扩展性以及成本。以下是详细的阐述,包括需求分析、MCU和传感器的选择标准。
1. 需求分析
在选择MCU和传感器之前,首先需要明确手表的功能需求。以下是一些常见的功能需求:
- 心率监测:需要一个高精度的心率传感器。
- 步数统计:需要加速度传感器来检测用户的运动。
- 蓝牙连接:需要支持蓝牙通信的MCU,以便与手机等设备进行数据交换。
- 显示屏控制:如果手表有显示屏,MCU需要支持相应的显示接口(如SPI或I2C)。
- 电池续航:设计时需要考虑功耗,确保手表能够长时间使用。
2. MCU选择
选择MCU时,需要考虑以下几个关键因素:
-
处理能力:MCU的主频和核心数量决定了其处理能力。对于智能手表,通常选择主频在48MHz到120MHz之间的MCU,以满足实时数据处理的需求。
-
功耗:智能手表通常需要长时间待机,因此选择低功耗的MCU至关重要。许多MCU提供不同的工作模式,如睡眠模式和低功耗模式,以延长电池寿命。
-
外设接口:MCU需要支持多种外设接口,如I2C、SPI、UART等,以便与传感器、蓝牙模块和显示屏进行通信。
-
存储容量:根据程序的复杂性和数据存储需求,选择合适的Flash和RAM容量。一般来说,32KB的Flash和4KB的RAM是一个合理的起点。
-
成本:在选择MCU时,成本也是一个重要因素。需要在性能和价格之间找到平衡。
示例:假设我们选择STM32系列的MCU,STM32F4系列具有较高的处理能力和丰富的外设接口,非常适合智能手表的应用。
#include "stm32f4xx.h"void MCU_Init(void) {// 初始化时钟RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // 使能定时器2时钟// 其他初始化代码...
}
3. 传感器选择
选择传感器时,需要考虑以下几个关键因素:
-
传感器类型:根据功能需求选择合适的传感器。例如,心率监测可以选择光学心率传感器(如MAX30100),步数统计可以选择三轴加速度传感器(如ADXL345)。
-
精度:传感器的精度直接影响到数据的可靠性。选择具有高精度和低误差的传感器,以确保数据的准确性。
-
功耗:传感器的功耗也是一个重要考虑因素,尤其是在电池供电的设备中。选择低功耗的传感器可以有效延长手表的使用时间。
-
响应时间:传感器的响应时间影响数据采集的实时性。对于心率监测等应用,选择响应时间较短的传感器是必要的。
-
与MCU的兼容性:确保所选传感器与MCU的通信接口兼容。例如,选择支持I2C或SPI协议的传感器,以便与MCU进行数据交换。
示例:选择光学心率传感器MAX30100,其具有良好的精度和低功耗特性,适合用于智能手表。
#include "Wire.h"
#include "MAX30100_PulseOximeter.h"MAX30100_PulseOximeter pox;void Sensor_Init() {Wire.begin();pox.begin();
}
创建电子电路的原理图
创建电子电路的原理图是设计智能手表电子系统的重要步骤之一。原理图不仅是电路设计的基础,也是后续PCB设计和电路调试的依据。以下是详细的阐述,包括原理图设计的步骤、工具选择、元件库管理和电气连接的注意事项。
1. 原理图设计步骤
1.1 确定电路功能模块
在开始绘制原理图之前,首先需要明确电路的功能模块。对于智能手表,常见的功能模块包括:
- 微控制器(MCU)模块:负责数据处理和控制。
- 传感器模块:如心率传感器、加速度传感器等。
- 通信模块:如蓝牙模块,用于与手机等设备进行数据交换。
- 电源管理模块:负责电池供电和电源管理。
- 显示模块:如OLED或LCD显示屏,用于显示信息。
1.2 选择电路设计软件
选择合适的电路设计软件是绘制原理图的第一步。常用的电路设计软件包括:
- Altium Designer:功能强大,适合复杂电路设计。
- Eagle:界面友好,适合初学者和小型项目。
- KiCad:开源软件,功能全面,适合各种规模的项目。
1.3 绘制原理图
在电路设计软件中,按照功能模块逐步绘制原理图。以下是绘制原理图的基本步骤:
- 添加元件:从元件库中选择所需的元件,如MCU、传感器、蓝牙模块等,并将其放置在工作区。
- 连接元件:使用连线工具将各个元件按照电气连接关系进行连接。确保每个模块之间的连接正确。
- 标注元件:为每个元件添加标识符(如R1、C1等),并标注其参数(如电阻值、电容值等)。
1.4 检查原理图
完成原理图绘制后,进行仔细检查,确保没有遗漏或错误。以下是检查的重点:
- 电源和地线连接:确保电源和地线的连接正确,避免短路。
- 信号连接:检查信号线的连接,确保没有错误连接或遗漏。
- 元件参数:确认每个元件的参数是否符合设计要求。
2. 元件库管理
在绘制原理图时,元件库的管理至关重要。以下是一些管理建议:
- 更新元件库:确保使用的元件在库中是最新的,避免使用过时或不兼容的元件。
- 自定义元件:如果库中没有所需的元件,可以根据实际需求自定义元件,并添加到库中。
- 元件属性:为每个元件添加详细的属性信息,包括型号、参数、封装类型等,以便后续PCB设计和采购。
3. 电气连接的注意事项
在进行电气连接时,需要特别注意以下几点:
-
信号完整性:高频信号线应尽量短且直,以减少信号衰减和反射。避免在信号线附近放置电源线和地线,以减少干扰。
-
电源管理:为MCU和传感器提供稳定的电源,必要时使用滤波电容以平滑电源波动。
-
地线设计:使用地平面设计,以减少噪声干扰和电磁干扰。确保所有元件的地线连接到同一地平面,避免形成地环路。
-
保护措施:在电源输入端添加保护电路,如过压保护、过流保护等,以提高电路的安全性和可靠性。
4. 示例原理图
以下是一个简单的智能手表原理图示例,展示了MCU、传感器和蓝牙模块的基本连接关系:
[MCU] ---- I2C ---- [MAX30100 (心率传感器)]
[MCU] ---- I2C ---- [ADXL345 (加速度传感器)]
[MCU] ---- UART ---- [蓝牙模块]
[电源] ---- [电源管理模块] ---- [MCU]
5. 综述
创建电子电路的原理图是智能手表设计过程中的关键步骤。通过明确功能模块、选择合适的电路设计软件、绘制原理图、管理元件库以及注意电气连接的细节,设计者可以为后续的PCB设计和电路调试打下坚实的基础。一个清晰、准确的原理图不仅能提高设计效率,还能减少后续调试和修改的工作量。
确保原理图符合安全标准
在设计智能手表的电子系统时,确保原理图符合相关的安全标准是至关重要的。这不仅关系到产品的安全性和可靠性,还影响到用户的健康和使用体验。以下是详细的阐述,包括安全标准的理解、电气安全、EMC(电磁兼容性)以及如何在设计中实施这些标准。
1. 理解安全标准
安全标准是对电子产品在设计、制造和使用过程中应遵循的规范和要求。这些标准通常由国家或国际组织制定,旨在确保产品的安全性和可靠性。常见的安全标准包括:
- UL(Underwriters Laboratories):美国的安全认证机构,提供产品安全测试和认证。
- IEC(International Electrotechnical Commission):国际电工委员会,制定电气和电子设备的国际标准。
- ISO(International Organization for Standardization):国际标准化组织,涉及质量管理和安全管理的标准。
在设计智能手表时,了解并遵循这些标准是非常重要的,尤其是在涉及电气安全和用户健康的情况下。
2. 电气安全
电气安全是确保电子设备在使用过程中不会对用户造成电击、火灾或其他危险的关键因素。以下是一些电气安全的设计原则:
2.1 过压和过流保护
在电源输入端添加过压和过流保护电路,以防止电源异常对电路造成损害。常用的保护元件包括:
- 保险丝:在电流超过设定值时自动断开电路。
- 瞬态电压抑制器(TVS):用于保护电路免受瞬时过压的影响。
2.2 隔离设计
在高压和低压电路之间进行隔离设计,以防止高压对低压部分造成影响。可以使用光耦合器或变压器实现电气隔离。
2.3 绝缘材料
选择合适的绝缘材料,以确保电路板和元件之间的绝缘性能,避免短路和漏电。
3. 电磁兼容性(EMC)
电磁兼容性是指设备在电磁环境中正常工作而不对其他设备造成干扰的能力。确保EMC的设计原则包括:
3.1 设计良好的接地系统
使用地平面设计,以减少电磁干扰。确保所有元件的地线连接到同一地平面,避免形成地环路。
3.2 滤波和屏蔽
在电源输入端和信号线中添加滤波器,以减少高频噪声的影响。同时,使用金属外壳或屏蔽材料对敏感电路进行屏蔽,以防止外部电磁干扰。
3.3 信号线布局
在布线时,尽量将高频信号线与电源线和地线分开,避免相互干扰。高频信号线应尽量短且直,以减少信号衰减和反射。
4. 设计验证与测试
在完成原理图设计后,进行设计验证和测试,以确保符合安全标准。以下是一些验证和测试的方法:
4.1 设计规则检查(DRC)
使用电路设计软件中的设计规则检查功能,确保原理图没有违反设计规则的情况,如短路、开路等。
4.2 安全性测试
在样品制作完成后,进行安全性测试,包括电气安全测试、过压测试和过流测试,以验证设计的安全性。
4.3 EMC测试
进行电磁兼容性测试,确保设备在电磁环境中正常工作,并不会对其他设备造成干扰。
PCB外形设计
PCB(印刷电路板)外形设计是电子产品设计中至关重要的一步,尤其是在智能手表等小型设备中。合理的PCB外形设计不仅影响到电路的性能和可靠性,还直接关系到产品的外观和用户体验。以下是关于PCB外形设计的详细阐述,包括外形尺寸、机械设计、材料选择和设计工具等方面。
1. 外形尺寸
1.1 根据产品外壳设计
在设计PCB外形时,首先需要考虑产品的外壳尺寸和形状。智能手表通常具有圆形或椭圆形的外壳,因此PCB的外形设计应与外壳相匹配。设计时应注意以下几点:
- 尺寸限制:确保PCB的尺寸不超过外壳的尺寸,以便于安装和固定。
- 形状设计:根据外壳的形状设计PCB外形,尽量减少边角和不规则部分,以提高生产效率和降低成本。
1.2 考虑组件布局
在确定PCB外形尺寸时,还需考虑关键组件的布局。确保重要组件(如MCU、传感器和电源模块)能够合理放置,并留有足够的空间进行连接和散热。
2. 机械设计
2.1 机械强度
PCB的机械强度是确保产品在使用过程中不易损坏的重要因素。设计时应考虑以下方面:
- 材料选择:选择合适的PCB材料(如FR-4),以确保其具有足够的强度和刚性。
- 厚度设计:根据产品的使用环境和要求,选择合适的PCB厚度。一般来说,1.6mm是常见的PCB厚度,但在小型设备中也可以选择0.8mm或1.0mm的厚度。
2.2 安装方式
设计PCB时,还需考虑其安装方式。常见的安装方式包括:
- 螺丝固定:在PCB上设计螺丝孔,以便于将PCB固定在外壳内。
- 卡扣设计:在PCB边缘设计卡扣,以便于与外壳的配合。
3. 材料选择
选择合适的PCB材料对电路的性能和可靠性有重要影响。常用的PCB材料包括:
- FR-4:最常用的PCB材料,具有良好的电气性能和机械强度,适合大多数应用。
- 柔性材料:在需要弯曲或折叠的应用中,可以选择柔性PCB材料(如聚酰亚胺),以适应复杂的形状。
4. 设计工具
在进行PCB外形设计时,选择合适的设计工具是非常重要的。常用的PCB设计软件包括:
- Altium Designer:功能强大,适合复杂电路的设计和布局。
- Eagle:界面友好,适合初学者和小型项目。
- KiCad:开源软件,功能全面,适合各种规模的项目。
5. 设计验证
在完成PCB外形设计后,进行设计验证是确保设计合理性的重要步骤。以下是一些验证的方法:
- 设计规则检查(DRC):使用设计软件中的DRC功能,确保PCB设计符合制造要求,如最小间距、最小孔径等。
- 机械检查:检查PCB外形是否符合外壳的尺寸要求,确保能够顺利安装。
规划关键组件的位置
在PCB设计中,合理规划关键组件的位置是确保电路性能、信号完整性和热管理的关键步骤。对于智能手表这样的紧凑型设备,组件布局的合理性直接影响到产品的功能和用户体验。以下是关于规划关键组件位置的详细阐述,包括信号完整性、热管理、机械装配和布局优化等方面。
1. 组件布局原则
1.1 信号完整性
信号完整性是指信号在传输过程中保持其原始形状和质量的能力。为了确保信号完整性,布局时应考虑以下几点:
-
高频信号线短且直:高频信号(如时钟信号和数据总线)应尽量缩短路径,避免不必要的转弯,以减少信号衰减和反射。
-
差分信号对:对于差分信号(如USB、LVDS等),应将正负信号线尽量靠近并平行布置,以保持良好的信号质量。
-
避免交叉干扰:将敏感信号线与电源线和地线分开,避免相互干扰。尽量避免在信号线附近放置高频或高功率的元件。
1.2 热管理
热管理是确保电子设备在正常工作温度范围内的重要因素。合理的组件布局可以帮助有效散热。以下是一些热管理的设计原则:
-
热源位置:将发热量大的元件(如MCU、功率放大器等)放置在PCB的中心或边缘,以便于热量的散发。
-
散热路径:确保热源与散热器或外壳之间有良好的热传导路径,必要时可以使用散热片或热导材料。
-
空气流通:在设计时考虑空气流通,避免将热源密集放置在一起,以减少局部过热的风险。
2. 机械装配
在规划组件位置时,还需考虑机械装配的要求。以下是一些机械装配的注意事项:
-
组件间距:确保组件之间有足够的间距,以便于焊接、维修和更换。一般来说,组件间距应至少为1.5倍于其引脚间距。
-
固定孔位置:在PCB上设计固定孔的位置,以便于将PCB固定在外壳内。固定孔应与外壳的安装孔对齐。
-
连接器位置:将连接器(如电源接口、通信接口等)放置在易于接入的位置,方便用户连接和断开。
3. 布局优化
在完成初步布局后,可以进行布局优化,以提高PCB的性能和可制造性。以下是一些优化建议:
-
分组布局:将功能相似的组件(如传感器、MCU和通信模块)放置在一起,以减少信号线长度和复杂度。
-
层次化设计:在多层PCB中,合理规划信号层和电源层的位置,确保信号和电源的有效分离。
-
使用自动布线工具:利用PCB设计软件中的自动布线工具进行初步布线,然后进行手动调整,以优化布线效果。
4. 设计验证
在完成组件位置规划后,进行设计验证是确保布局合理性的重要步骤。以下是一些验证的方法:
-
设计规则检查(DRC):使用设计软件中的DRC功能,确保组件布局符合制造要求,如最小间距、最小孔径等。
-
信号完整性分析:使用信号完整性分析工具,检查高频信号的传输质量,确保没有反射和衰减问题。
-
热分析:进行热分析,评估热源的温度分布,确保所有元件在安全工作温度范围内。
按照高速信号设计规则进行布线
在电子设计中,尤其是涉及高速信号的电路,布线的质量直接影响到信号的完整性和系统的性能。对于智能手表等小型设备,合理的布线设计尤为重要。以下是关于按照高速信号设计规则进行布线的详细阐述,包括布线原则、设计规则、工具使用和验证方法等方面。
1. 高速信号的特性
高速信号通常指的是频率较高(如数十MHz到数GHz)的信号。在这种情况下,信号的传输特性会受到多种因素的影响,包括信号衰减、反射、串扰等。因此,在布线时需要特别关注以下几个方面:
- 信号延迟:信号在传输过程中会产生延迟,尤其是在长距离传输时,延迟可能会影响数据的同步。
- 信号完整性:信号的形状和幅度在传输过程中可能会发生变化,导致数据错误。
- 电磁干扰(EMI):高速信号容易受到外部电磁干扰的影响,可能会导致信号失真。
2. 布线原则
在进行高速信号布线时,应遵循以下原则:
2.1 短而直的布线
- 减少长度:尽量缩短信号线的长度,以降低信号衰减和延迟。
- 避免急转弯:信号线应尽量保持直线,避免急转弯,以减少信号反射。
2.2 差分信号对
- 差分信号布线:对于差分信号(如USB、HDMI等),应将正负信号线尽量靠近并平行布置,以保持良好的信号质量。
- 相同长度:确保差分信号对的两条信号线长度相同,以避免信号失真。
2.3 地平面设计
- 使用地平面:在PCB设计中,使用完整的地平面可以有效降低信号的噪声和干扰。
- 避免地环路:确保所有信号和电源线的地线连接到同一地平面,避免形成地环路。
3. 设计规则
在进行高速信号布线时,需要遵循一些设计规则,以确保信号的质量和可靠性:
3.1 最小间距
- 信号线间距:高速信号线之间的最小间距应根据PCB制造工艺和信号频率来确定,通常建议保持在5-10 mils(0.127-0.254 mm)以上。
3.2 阻抗匹配
- 阻抗控制:对于高速信号,信号线的特征阻抗应与驱动器和接收器的阻抗匹配,通常为50Ω或75Ω。可以通过调整信号线的宽度和间距来实现。
3.3 过孔设计
- 过孔数量:尽量减少信号线中的过孔数量,因为过孔会引入额外的电感和电阻,影响信号质量。
- 过孔位置:如果必须使用过孔,尽量将其放置在信号线的末端,避免在信号传输路径中间使用。
4. 工具使用
在进行高速信号布线时,使用合适的PCB设计工具可以提高设计效率和准确性。常用的工具包括:
- Altium Designer:提供强大的布线功能和设计规则检查,适合复杂电路的设计。
- Eagle:界面友好,适合初学者和小型项目,支持基本的高速信号布线功能。
- KiCad:开源软件,功能全面,适合各种规模的项目,支持自定义设计规则。
5. 验证方法
在完成高速信号布线后,进行设计验证是确保布线质量的重要步骤。以下是一些验证的方法:
5.1 设计规则检查(DRC)
- 使用设计软件中的DRC功能,确保布线符合设计规则,如最小间距、阻抗匹配等。
5.2 信号完整性分析
- 使用信号完整性分析工具(如SPICE仿真)检查信号的波形,确保没有反射和衰减问题。
5.3 电磁兼容性测试
- 进行电磁兼容性测试,确保设备在电磁环境中正常工作,并不会对其他设备造成干扰。
结论
在智能手表的设计过程中,从选择合适的微控制器和传感器,到创建电路原理图、确保符合安全标准、进行PCB外形设计、规划关键组件的位置,再到按照高速信号设计规则进行布线,每一个环节都至关重要。合理的设计不仅能提升产品的性能和可靠性,还能确保用户的安全和良好的使用体验。通过遵循相关的设计原则和标准,设计者能够有效降低潜在的风险,提升产品的市场竞争力。随着技术的不断进步,智能手表的功能将更加丰富,设计者需要不断学习和适应新的技术,以满足日益增长的市场需求。最终,成功的设计将为用户带来更高的价值和更好的体验,推动智能穿戴设备行业的持续发展。
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。
相关文章:
如何设计一款智能手表的电子系统:从选择MCU到PCB设计
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:趣享先生的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏&…...
Vue Web开发(七)
1. echarts介绍 echarts官方文档 首先我们先完成每个页面的路由,之前已经有home页面和user页面,缺少mail页面和其它选项下的page1和page2页面。在view文件夹下新建mail文件夹,新建index.vue,填充user页面的内容即可。在view下新建…...
基于米尔全志T527开发板的OpenCV进行手势识别方案
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV手势识别方案测试。 摘自优秀创作者-小火苗 米尔基于全志T527开发板 一、软件环境安装 1.安装OpenCV sudo apt-get install libopencv-dev python3-opencv 2.安装pip sudo apt…...
洛谷 P10483 小猫爬山 完整题解
一、题目查看 P10483 小猫爬山 - 洛谷 二、解题思路 我们将采取递归 剪枝的思想: sum数组存放每辆车当前载重。 每次新考虑一只小猫时,我们尝试把它放进每个可以放进的缆车中(需要回溯) for (int i 0; i < k; i) {if (sum[i]…...
Vmware的网络适配器的NAT模式和桥接模式有何区别?如何给Uubunt系统添加桥接网卡?
Vmware的网络适配器的NAT模式和桥接模式有何区别? 如何给Uubunt系统添加桥接网卡? 步骤如下:...
Vue导出报表功能【动态表头+动态列】
安装依赖包 npm install -S file-saver npm install -S xlsx npm install -D script-loader创建export-excel.vue组件 代码内容如下(以element-ui样式代码示例): <template><el-button type"primary" click"Expor…...
6.2 Postman接口收发包
欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 接口收发包的类比1.1 获取对方地址(填写接口URL)1.2 选择快递公司(设置HTTP方法)1.3 填写快递单(设置请求头域&#…...
UE4_贴花_贴花基础知识一
贴花可以将材料和各种材料元素投影到表面上。您可以使用它们来添加独特的效果。贴花 是一种可以投射到网格体(包括静态网格体和骨骼网格体)上的材质。无论这些网格体的移动性(Mobility)是静态(Static)还是可…...
代码随想录day13 二叉树:二叉树的遍历(前中后序)(递归、迭代)、102.二叉树的层序遍历
二叉树简单讲解及题目讲解 代码随想录 144.二叉树前序遍历 145.二叉树后序遍历 94.二叉树中序遍历 102.二叉树的层序遍历 题目 给你二叉树的根节点root, 完成二叉树的前中后序遍历 二叉树遍历–递归法 思路 了解过二叉树的定义和遍历规则, 那么完成此题并没有什么难度, 采用…...
Kafka - 消息乱序问题的常见解决方案和实现
文章目录 概述一、MQ消息乱序问题分析1.1 相同topic内的消息乱序1.2 不同topic的消息乱序 二、解决方案方案一: 顺序消息Kafka1. Kafka 顺序消息的实现1.1 生产者:确保同一业务主键的消息发送到同一个分区1.2 消费者:顺序消费消息 2. Kafka 顺…...
俏生元,融汇传统智慧与现代科技,解析药食同源健康奥秘
在追求健康生活的今天,药食同源的理念正逐渐成为现代人滋养身心的新选择。俏生元,一直以来注重女性健康和多元需求,正以它独特的视角和匠心产品,助推着药食同源健康滋养的风尚。 俏生元葛根红参丰韵膏 药食同源,匠心独…...
【CUDA】CUBLAS
【CUDA】CUBLAS 在深入了解之前,提前运行预热(warmup)和基准测试(benchmark runs) 是获得准确执行时间的关键。如果不进行预热运行,cuBLAS 的首次运行会有较大的开销(大约 45 毫秒)…...
泛型编程--
auto自动推导数据类型 函数模板 定义和调用 函数模板具体化 函数模板通用版本之外的一个特殊版本 函数模板 具体化函数 ,它们的声明和定义都可以分开写。 声明 定义 函数模板写变量 模板参数缺省 类成员函数作为函数模板 类构造函数是函数模板 函数模板重载 函数模…...
Linux USB开发整理和随笔
目录 1 概述 2 硬件原理基础 2.1 USB发展 2.2 USB的拓扑 2.3 硬件接口 2.4 USB总线协议 2.4.1 通信过程 2.4.2 概念关系 2.4.3 管道PIPE 2.4.4 传输 2.4.5 事务 2.4.6 包结构与类型 2.4.6.1 令牌包 2.4.6.2 数据包 2.4.6.3 握手包 2.5 描述符 2.5.1 设备描述符…...
【实验】【H3CNE邓方鸣】交换机端口安全实验+2024.12.11
实验来源:邓方鸣交换机端口安全实验 软件下载: 华三虚拟实验室: 华三虚拟实验室下载 wireshark:wireshark SecureCRT v8.7 版本: CRT下载分享与破解 文章目录 dot1x 开启802.1X身份验证 开启802.1X身份验证,需要在系统视图和接口视…...
使用任务队列TaskQueue和线程池ThreadPool技术实现自定义定时任务框架详解
前言 在桌面软件开发中,定时任务是一个常见的需求,比如定时清理日志、发送提醒邮件或执行数据备份等操作。在C#中有一个非常著名的定时任务处理库Hangfire,不过在我们深入了解Hangfire 之前,我们可以手动开发一个定时任务案例&am…...
在IDE中使用Git
我们在开发的时候肯定是经常使用IDE进行开发的,所以在IDE中使用Git也是非常常用的,接下来以IDEA为例,其他的VS code ,Pycharm等IDE都是一样的。 在IDEA中配置Git 1.打开IDEA 2.点击setting 3.直接搜索git 如果已经安装了会自…...
蓝桥杯新年题解 | 第15届蓝桥杯迎新篇
蓝桥杯新年题解 | 第15届蓝桥杯迎新篇 2024年的蓝桥杯即将拉开序幕!对于许多编程爱好者来说,这不仅是一次展示自我能力的舞台,更是一次学习和成长的机会。作为一名大一新生的小蓝,对蓝桥杯充满了期待,但面对初次参赛的…...
Docker Swarm实战
文章目录 1、docker swarm介绍2、docker swarm概念与架构2.1 架构2.2 概念 3、docker swarm集群部署3.1 容器镜像仓库 Harbor准备3.2 主机准备3.2.1 主机名3.2.2 IP地址3.2.3 主机名与IP地址解析3.3.4 主机时间同步3.2.5 主机安全设置 3.3 docker安装3.3.1 docker安装3.3.2 配置…...
磁盘空间占用分析工具-wiztree【推荐】
磁盘空间占用分析工具-wiztree【推荐】 如果你遇到过磁盘空间占满、找大文件困难、线上服务器空间飙升等一系列磁盘的问题,并且需要分析文件夹占用空间,传统的方法就是一个一个去看,属实太费劲,效率太低。 而“WizTree”便可解决…...
Vuex在uniapp中的使用
文章目录 一、Vuex概述 1.1 官方解释 1.2 大白话 1.3 组件间共享数据的方式 1.4 再看Vuex是什么 1.5 使用Vuex统一管理好处 二、状态管理 2.1 单页面状态管理 2.2 多页面状态管理 2.3 全局单例模式 2.4 管理哪些状态 三、Vuex的基本使用 3.1 安装 3.2 导入 3.3 创建store对象…...
【含开题报告+文档+PPT+源码】基于微信小程序的点餐系统的设计与实现
开题报告 随着互联网技术的日益成熟和消费者生活水平与需求层次的显著提升,外卖点餐平台在中国市场上迅速兴起并深深植根于民众日常生活的各个角落。这类平台的核心在于构建了一个基于互联网的强大订餐服务系统,它无缝整合了餐饮商户资源与广大消费者的…...
Elasticsearch02-安装7.x
零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch (1)JDK安装 Elasticsearch是基于java开发的,所以需要安装JDK。我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。也可以不安装jdk,…...
【数据库】选择题+填空+简答
1.关于冗余数据的叙述中,不正确的是() A.冗余的存在容易破坏数据库的完整新 B.冗余的存在给数据库的维护增加困难 C.不应该在数据库中存储任何冗余数据 D.冗余数据是指由基本数据导出的数据 C 2.最终用户使用的数据视图称为(&…...
Spark执行计划解析后是如何触发执行的?
在前一篇Spark SQL 执行计划解析源码分析中,笔者分析了Spark SQL 执行计划的解析,很多文章甚至Spark相关的书籍在讲完执行计划解析之后就开始进入讲解Stage切分和调度Task执行,每个概念之间没有强烈的关联,因此这中间总感觉少了点…...
渗透测试-前端验签绕过之SHA256+RSA
本文是高级前端加解密与验签实战的第2篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256RSA签名来爆破登录。 绕过 根据提示可以看出这次签名用了SHA2556和RSA两个技术进行加密。 查看源代码可以看到RSA公钥是通过请求服务…...
Maven完整技术汇总
额外知识点 IDE IDE是集成开发环境的缩写,它是一种软件应用程序,提供了编码、调试和部署软件的一站式解决方案。这些功能集成在一起,使开发人员能够在一个环境中完成整个软件开发过程,从编写代码到调试和测试,直到最终…...
NOI系列赛事LaTeX模板
NOI系列赛事 L a T e X LaTeX LaTeX 模板 照搬照抄: s y k s y k C C C syksykCCC syksykCCC 大佬写的,但是看得人不多。真的很好,比其他的板子优秀多了。现在我当一个校友搬运工,搬过来。 \documentclass[UTF8,a4paper]{ctex…...
JustTrustMe是什么
JustTrustMe是什么 JustTrustMe 是一个用于 Android 的 Xposed 模块,主要用于绕过应用程序的 SSL pinning(SSL 证书锁定)机制。SSL pinning 是一种安全措施,应用程序通过它来验证服务器返回的 SSL 证书是否与应用程序内置的证书匹…...
题解 - 工作分配
题目描述 在工厂里,如果每道工序让不同的工人来做,所要花费的时间往往不一样。精明的老板为了提高效率,总是把生产某一产品所需要的N道工序进行最佳搭配,使生产某一产品所花费的总时间最少。现在就给出N个工人分别做N道工序所要花…...
GLM-4-Plus初体验
引言:为什么高效的内容创作如此重要? 在当前竞争激烈的市场环境中,内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子,还是制作广告,优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…...
【Python基础】Python知识库更新中。。。。
1、Python知识库简介 现阶段主要源于个人对 Python 编程世界的强烈兴趣探索,在深入钻研 Python 核心语法、丰富库函数应用以及多样化编程范式的基础上,逐步向外拓展延伸,深度挖掘其在数据分析、人工智能、网络开发等多个前沿领域的应用潜力&…...
【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)
项目场景: 国民N32G43X系列,烧录了一个测试程序,在DEBUG中不知什么原因挂掉,然后就无法连接SWD或JLINK。 问题描述 在SWD配置中不可见芯片型号,无法connect,无法烧录。但基本判断是芯片没有损坏。怀疑是程…...
C++如何读取包含空格在内的整行字符串s? ← getline(cin,s);
【问题描述】 问:请分析下面代码,在利用 cin 输入带空格的整行字符串时,会输出什么? #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;for(int i0; i<s.size(); i) {cout<<s[i];}…...
活动预告 | Microsoft 365 在线技术公开课:让组织针对 Microsoft Copilot 做好准备
课程介绍 通过Microsoft Learn免费参加Microsoft 365在线技术公开课,建立您需要的技能,以创造新的机会并加速您对Microsoft云技术的理解。参加我们举办的“让组织针对 Microsoft Copilot for Microsoft 365 做好准备” 在线技术公开课活动,学…...
tomcat被检测到目标URL存在htp host头攻击漏洞
AI越来越火了,我们想要不被淘汰就得主动拥抱。推荐一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站 Tomcat被检测到目标URL存在http host头攻击漏洞,这个漏洞复现一下就是黑客访问你的网站,之后中修改请求头中的host属…...
【使用webrtc-streamer解析rtsp视频流】
webrtc-streamer WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或&a…...
【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现单链表的基本运算。 相关知识 为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性…...
华为FreeBuds Pro 4丢了如何找回?(附查找功能使用方法)
华为FreeBuds Pro 4查找到底怎么用?华为FreeBuds Pro 4有星闪精确查找和离线查找,离线查找功能涵盖播放铃声、导航定位、星闪精确查找、上线通知、丢失模式、遗落提醒等。星闪精确查找是离线查找的子功能,当前仅华为FreeBuds Pro 4充电盒支持…...
直流开关电源技术及应用
文章目录 1. 开关电源概论1.1 开关电源稳压原理1.1.1 开关电源稳压原理 1. 开关电源概论 1.1 开关电源稳压原理 为了提高效率,必须使功率调整器件处于开关工作状态。 作为开关而言,导通时压降很小,几乎不消耗能量,关断时漏电流很…...
langchain 结构化输出
主要流程 1. 使用 Pydantic 定义结构化输出: 定义 AnswerWithJustification 类,用于描述输出的结构,包含以下字段: answer:答案内容(字符串类型)。justification:答案的理由或解释…...
开源Java快速自测工具,可以调用系统内任意一个方法
java快速测试框架,可以调到系统内任意一个方法,告别写单测和controller的困扰。 开源地址:https://gitee.com/missyouch/Easy-JTest 我们在开发时很多时候想要测试下自己的代码,特别是service层或者是更底层的代码,就…...
挺详细的记录electron【V 33.2.0】打包vue3项目为可执行程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、直接看效果 二、具体步骤 1.安装配置electron 1.将 electron 包安装到应用的开发依赖中。 2.安装electron-packager依赖(打包可执行文件&#…...
相比普通LED显示屏,强力巨彩软模组有哪些优势?
在科技技术的加持下,LED显示屏市场各类创新产品层出不穷,为市场带来了无限可能。其中,强力巨彩R系列H版(软模组)凭借其独特的技术优势,在行业内脱颖而出。那么,相比常规LED显示屏,强…...
操作系统(7)处理机调度
前言 操作系统中的处理机调度是一个核心概念,它涉及如何从就绪队列中选择进程并将处理机分配给它以运行,从而实现进程的并发执行。 一、调度的层次 高级调度(作业调度): 调度对象:作业(包含程序…...
【Spark】Spark的两种核心Shuffle工作原理详解
如果觉得这篇文章对您有帮助,别忘了点赞、分享或关注哦!您的一点小小支持,不仅能帮助更多人找到有价值的内容,还能鼓励我持续分享更多精彩的技术文章。感谢您的支持,让我们一起在技术的世界中不断进步! Sp…...
10.qml使用 shadereffect 实现高斯模糊
目录 高斯模糊sigma获取加权均值获取 高斯二维公式实现高斯一维公式实现使用总结 高斯模糊 高斯模糊应用领域我就不过多讲解,想了解自己去了解 高斯模糊有 一维公式 二维公式 当然我们图像是二维的 但是实际上二维公式用于计算那是消耗大量的算力的,…...
2024年12月GESPC++一级真题解析
一、单选题(每题2分,共30分) 题目123456789101112131415答案 C C D B B D B C C C D C D B D 1.2024 年 10 月 8 日,诺贝尔物理学奖 “ 意外地 ” 颁给了两位计算机科学家约翰 霍普菲尔德( John J. H…...
Nmap脚本参数详解
免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。 文章目录 一、 按脚本分类1. 检查身份验证机制2. 探测广播行为3. 登录爆破4. 默认脚本运行5. 网络资产发现6. Dos漏洞检测7. 漏洞利用8. 检…...
Rstudio-server的安装、配置、维护
一、安装Rstudio-server (1)安装R语言: sudo apt install r-base # 如果没有管理员权限无法操作 # 这样装上R默认在/usr/bin/R其实基本上的流程都可以参考posit的官网(也就是Rstudio的官网): https://posit.co/download/rstudio…...