《嵌入式硬件设计》
一、引言
嵌入式系统在现代科技中占据着至关重要的地位,广泛应用于消费电子、工业控制、汽车电子、医疗设备等众多领域。嵌入式硬件设计作为嵌入式系统开发的基础,直接决定了系统的性能、可靠性和成本。本文将深入探讨嵌入式硬件设计的各个方面,包括处理器选择、存储器设计、外设接口、电源管理以及 PCB 设计等,为读者提供全面的技术参考。
二、嵌入式系统概述
(一)嵌入式系统的定义
嵌入式系统是一种以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它通常由嵌入式处理器、存储器、输入输出设备、操作系统和应用软件等组成。
(二)嵌入式系统的特点
- 专用性强:针对特定的应用需求进行设计,具有高度的针对性和专业性。
- 实时性高:能够在规定的时间内完成特定的任务,对响应时间有严格的要求。
- 可靠性高:在恶劣的环境下能够稳定运行,具有较高的抗干扰能力和容错能力。
- 体积小、功耗低:适合于嵌入式设备的小型化和低功耗要求。
- 成本低:由于批量生产和专用设计,成本相对较低。
(三)嵌入式系统的应用领域
- 消费电子:如智能手机、平板电脑、智能手表、智能家居等。
- 工业控制:如 PLC、工业机器人、自动化生产线等。
- 汽车电子:如发动机控制、车载娱乐系统、自动驾驶等。
- 医疗设备:如心电图机、血糖仪、医疗影像设备等。
- 航空航天:如飞行控制系统、卫星通信系统等。
三、嵌入式处理器选择
(一)嵌入式处理器的分类
- 微控制器(MCU):也称为单片机,具有体积小、功耗低、成本低等特点,适用于简单的控制应用。
- 数字信号处理器(DSP):专门用于数字信号处理,具有高速运算能力和强大的数字信号处理功能,适用于音频、视频等信号处理应用。
- 嵌入式微处理器(MPU):类似于通用计算机的处理器,但在功能和性能上进行了裁剪和优化,适用于复杂的嵌入式应用。
(二)处理器选择的考虑因素
- 应用需求:根据应用的功能需求、性能要求、实时性要求等选择合适的处理器。
- 成本:考虑处理器的价格、开发工具成本、生产成本等。
- 功耗:对于电池供电的嵌入式设备,功耗是一个重要的考虑因素。
- 开发难度:选择易于开发和调试的处理器,降低开发成本和周期。
- 供应商支持:选择有良好技术支持和售后服务的供应商,确保产品的稳定性和可靠性。
(三)常见的嵌入式处理器
- ARM 处理器:广泛应用于各种嵌入式领域,具有高性能、低功耗、丰富的外设接口等特点。
- AVR 处理器:Atmel 公司推出的 8 位微控制器,具有低成本、低功耗、易于开发等特点。
- PIC 处理器:Microchip 公司推出的 8 位微控制器,具有高性能、低功耗、丰富的外设接口等特点。
- MSP430 处理器:TI 公司推出的 16 位微控制器,具有低功耗、高性能、丰富的外设接口等特点。
四、存储器设计
(一)存储器的分类
- 随机存取存储器(RAM):用于存储程序运行时的数据和指令,具有读写速度快、掉电易失等特点。
- 只读存储器(ROM):用于存储程序和固定数据,具有只读、掉电不丢失等特点。
- 闪存(Flash):一种非易失性存储器,具有读写速度快、容量大、可擦写等特点,广泛应用于嵌入式系统中。
(二)存储器容量的确定
根据应用程序的大小、数据存储需求、操作系统和驱动程序的占用空间等因素确定存储器的容量。一般来说,需要预留一定的余量,以满足未来的扩展需求。
(三)存储器的接口设计
- SRAM 和 DRAM 的接口设计:需要考虑地址线、数据线、控制线等的连接,以及读写时序的匹配。
- Flash 的接口设计:需要考虑 Flash 的类型(如 NOR Flash、NAND Flash)、接口标准(如 SPI、I2C、SDIO 等)以及读写操作的流程。
五、外设接口设计
(一)常见的外设接口
- UART(通用异步收发器):用于串行通信,实现设备之间的数据传输。
- SPI(串行外设接口):一种高速的全双工同步串行通信接口,常用于连接传感器、存储器等外设。
- I2C(集成电路总线):一种两线式串行总线,用于连接低速外设,如 EEPROM、温度传感器等。
- USB(通用串行总线):一种高速的通用串行总线,用于连接各种外设,如鼠标、键盘、打印机等。
- Ethernet(以太网接口):用于实现网络通信,连接到局域网或互联网。
(二)外设接口的选择和设计
- 根据应用需求选择合适的外设接口,考虑数据传输速度、通信距离、设备兼容性等因素。
- 设计外设接口的电路,包括接口芯片的选择、信号线的连接、电源和地的处理等。
- 编写外设接口的驱动程序,实现对外设的控制和数据传输。
六、电源管理
(一)电源需求分析
- 确定嵌入式系统的电源需求,包括电压、电流、功率等参数。
- 考虑电源的稳定性和可靠性,选择合适的电源方案。
(二)电源管理策略
- 低功耗设计:采用低功耗的处理器、外设和电源管理芯片,降低系统的功耗。
- 电源切换:根据系统的工作状态,切换不同的电源模式,如正常模式、睡眠模式、待机模式等,以降低功耗。
- 电池管理:对于电池供电的嵌入式设备,需要进行电池充电管理、电量监测等,以延长电池的使用寿命。
(三)电源管理芯片的选择和应用
- 选择合适的电源管理芯片,考虑芯片的功能、性能、成本等因素。
- 设计电源管理电路,包括电源输入滤波、稳压、电源切换等电路。
- 配置电源管理芯片的参数,实现对电源的管理和控制。
七、PCB 设计
(一)PCB 设计流程
- 原理图设计:根据硬件设计方案,绘制原理图,包括处理器、存储器、外设接口、电源等电路。
- PCB 布局:将原理图中的各个元件布局在 PCB 板上,考虑信号完整性、电源完整性、散热等因素。
- PCB 布线:根据布局结果,进行 PCB 布线,包括信号线、电源线、地线等的连接,保证信号的传输质量和电源的稳定性。
- PCB 检查和优化:对 PCB 设计进行检查和优化,包括电气规则检查、信号完整性分析、电源完整性分析等,确保 PCB 设计的正确性和可靠性。
(二)信号完整性设计
- 阻抗匹配:保证信号线的阻抗匹配,减少信号反射和失真。
- 差分信号:采用差分信号传输,提高信号的抗干扰能力和传输速度。
- 信号隔离:对于敏感信号,采用信号隔离技术,减少干扰。
- 接地设计:合理设计接地系统,减少地噪声和干扰。
(三)电源完整性设计
- 电源平面设计:设计电源平面,保证电源的稳定性和可靠性。
- 去耦电容:在电源引脚和地之间添加去耦电容,减少电源噪声和纹波。
- 电源滤波:对于电源输入,采用滤波电路,减少电源干扰。
(四)散热设计
- 选择合适的封装和散热方式,如散热片、风扇等。
- 合理布局元件,避免热量集中。
- 设计散热通道,保证空气流通,提高散热效果。
八、嵌入式硬件调试与测试
(一)硬件调试方法
- 观察法:通过观察硬件的工作状态、指示灯等,判断硬件是否正常工作。
- 测量法:使用万用表、示波器等仪器,测量硬件的电压、电流、信号等参数,判断硬件是否正常工作。
- 软件调试:通过编写测试程序,对硬件进行功能测试和性能测试,判断硬件是否正常工作。
(二)硬件测试内容
- 功能测试:测试硬件的各个功能模块是否正常工作,如处理器、存储器、外设接口等。
- 性能测试:测试硬件的性能指标,如处理器的运算速度、存储器的读写速度、外设接口的数据传输速度等。
- 可靠性测试:测试硬件的可靠性和稳定性,如长时间运行测试、高低温测试、振动测试等。
(三)硬件调试与测试工具
- 万用表:用于测量电压、电流、电阻等参数。
- 示波器:用于观察信号的波形、频率、幅度等参数。
- 逻辑分析仪:用于分析数字信号的逻辑关系。
- 仿真器:用于模拟处理器的运行,进行软件调试。
九、总结
嵌入式硬件设计是一项复杂而又具有挑战性的工作,需要综合考虑处理器选择、存储器设计、外设接口、电源管理以及 PCB 设计等多个方面。在设计过程中,需要根据应用需求选择合适的硬件组件和技术方案,注重信号完整性、电源完整性和散热设计,以确保硬件的性能、可靠性和稳定性。同时,还需要进行严格的调试和测试,确保硬件能够正常工作。随着嵌入式技术的不断发展,嵌入式硬件设计也将不断创新和进步,为各种嵌入式应用提供更加高效、可靠的解决方案。
相关文章:
《嵌入式硬件设计》
一、引言 嵌入式系统在现代科技中占据着至关重要的地位,广泛应用于消费电子、工业控制、汽车电子、医疗设备等众多领域。嵌入式硬件设计作为嵌入式系统开发的基础,直接决定了系统的性能、可靠性和成本。本文将深入探讨嵌入式硬件设计的各个方面ÿ…...
【C语言篇】C 语言总复习(上):点亮编程思维,穿越代码的浩瀚星河
我的个人主页 我的专栏:C语言,希望能帮助到大家!!!点赞❤ 收藏❤ 在计算机科学的广袤宇宙中,C语言犹如一颗璀璨的恒星,散发着持久而耀眼的光芒。它作为一种基础且强大的编程语言,承载…...
多线程——04
本节目标 1. wait 和 notify 方法 2. 代码案例 1. wait 和 notify 方法 1. 方法使用 多个线程的执行顺序本身是随机的(抢占式执行) wait —— 让指定线程进入阻塞状态 notify —— 唤醒对应的阻塞状态的线程 注意: wait, notify, notifyAl…...
使用ECS和OSS搭建个人网盘
在linux服务器 一、下载cloudreve安装包。 执行如下命令,下载cloudreve安装包。 wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz 下载完毕后,执行如下命令,解压cloudreve安装包。 tar -zxvf c…...
Android 单元测试断言校验方法 org.junit.Assert
判断布尔值 assertTrue assertFalse 判断对象非空 assertNull(object); 案例: PersistableBundle result Util.getCarrierConfig(mockContext, subId);assertNull(result); 判断是否相等 assertEquals("mocked_string", result.toString()); package or…...
SpringSecurity学习
介绍 SpringSecurity是一个作用于身份认证和权限控制的框架,其针对的主要就是网站的安全问题 页面代码 要使用SpringSecurity的前提是有一个可以正常访问业务逻辑的代码,再使用SpringSecurity实现权限控制和身份验证。 后端代码 package com.learn.…...
Eureka和Zookeeper、Nacos的区别
目录 一、Eureka与Zookeeper的区别 适用场景: 架构设计: 功能特性: 社区生态: 二、Eureka与Nacos的区别 接口方式: 实例类型: 健康检测: 服务发现: 一致性与可用性&#…...
基于gitlab API刷新MR的commit的指定status
场景介绍 自己部署的gitlab Jenkins,并已经设置好联动(如何设置可以在网上很容易搜到)每个MergeRequest都可以触发多个Jenkins pipeline,pipeline结束后会将状态更新到gitlab这个MR上希望可以跳过pipeline运行,直接将指定的MR的指定pipeline状态刷新为…...
SpringBoot | 拦截器 | 统一数据返回格式 | 统一异常处理 | 适配器模式
拦截器 拦截器是Spring框架提供的核心功能之一, 主要用来拦截用户的请求, 在指定方法前后, 根据业务需要执行预先设定的代码. 也就是说, 允许开发人员提前预定义一些逻辑, 在用户的请求响应前后执行. 也可以在用户请求前阻止其执行. 在拦截器当中,开发人员可以在…...
Oracle清除水位
– 清除水位 ALTER TABLE 数据库名.表名 ENABLE ROW MOVEMENT; ALTER TABLE 数据库名.表名 SHRINK SPACE CASCADE; ALTER TABLE 数据库名.表名 DISABLE ROW MOVEMENT; – 回收统计信息 BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME > ‘数据库名’, TABNAME > ‘表名’…...
软件工程——期末复习(2)
Part1:软件工程基本概念 软件程序文档数据 在软件工程中,软件通常被定为程序、文档和数据的集合。程序是按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码。文档是描述程序操作和使用的文档,是与…...
RAID1技术是什么?它的发展和工作原理如何?
RIAD1是一种先进的数据存储与冗余技术,设计用于解决现代分布式系统中常见的数据安全、数据一致性和高可用性等问题。随着云计算和大规模分布式存储系统的兴起,如何保障数据在高效传输与存储过程中仍然能具备足够的安全性和可靠性,成为了各大企…...
【Apache Paimon】-- 8 -- flink 创建 paimon connecor 的两种方式
目录 1、使用 catalog 创建非临时表 2、使用 with 创建 temporary 表 3、对比 4、参考 1、使用 catalog 创建非临时表 CREATE CATALOG my_catalog WITH (type = paimon,warehouse = hdfs:///path/to/warehouse );USE CATALOG my_catalog; CREATE TABLE `<your-paimon-…...
js进阶-关于运算符++
一、运算符与表达式 运算符按参与的运算单元数量分为:一元运算符、二元运算符和三元运算符;表达式是运算单元和运算符一起构成的;每个表达式都有一个运算后的返回值。 二、关于运算符 1.概述 运算符分为两部分,第一部分是返回运…...
三维地图,智慧城市,商业智能BI,数据可视化大屏(Cesiumjs/UE)
绘图工具 三维地图:Cesiumjs 建模方式:激光点云建模、航拍倾斜摄影建模、GIS建模、BIM建模、手工建模 建模工具:C4D Blender GeoBuilding ArcGIS Cesiumjs <!DOCTYPE html> <html lang"en"> <head><meta …...
通过EPEL 仓库,在 CentOS 7 上安装 OpenResty
通过EPEL 仓库,在 CentOS 7 上安装 OpenResty 通过EPEL 仓库,在 CentOS 7 上安装 OpenResty步骤 1: 安装 EPEL 仓库步骤 2: 安装 OpenResty步骤 3: 启动 OpenResty步骤 4: 设置开机自启步骤 5: 验证安装说明 通过EPEL 仓库,在 CentOS 7 上安装…...
每日一题 LCR 054. 把二叉搜索树转换为累加树
LCR 054. 把二叉搜索树转换为累加树 使用后序遍历即可 class Solution { public:TreeNode* convertBST(TreeNode* root) {int temp 0;dfs(root,temp);return root;}void dfs(TreeNode* root,int &temp){if(!root){return ;}dfs(root->right,temp);temp root->val;…...
【贪心算法】贪心算法五
贪心算法五 1.跳跃游戏 II2.跳跃游戏3.加油站3.单调递增的数字 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.跳跃游戏 II 题目链接&…...
vue2播放视频和预览文件的组件以及使用方法
##文件预览组件 按照组件 解决展示pdf的问题 npm install pdfh5 npm install canvas2.8.0 --ignore-scripts npm install --save dommatrix npm install --save web-streams-polyfill解决excel和docx预览的问题 npm install vue-office/docx vue-demi0.14.6 npm inst…...
记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009
项目是个老项目,依赖包也比较大,咱就按正常流程走一遍来详细解决这个问题,先看一下node版本,我用的是nvm管理的,详细可以看我的其他文章 友情提醒:如果项目比较老,包又大,又有一些需…...
【批处理脚本】更改Windows系统中的 hosts 解析文件
概述 作用 修改 Windows 系统中的 hosts 文件,可以实现 插入 或 删除 条目。该脚本允许用户以管理员权限执行,将特定的域名解析到指定的 IP 地址 应用场景 非常适用于需要频繁或批量修改 hosts 文件的场景: 屏蔽网站、域名重定向、DNS 污染防…...
AIGC 与艺术创作:变革与机遇
在当今数字化时代,人工智能生成内容(AIGC)正以惊人的速度重塑着艺术创作的格局,为艺术家们带来了令人振奋的新机遇。 一.AIGC 的崛起与艺术领域的变革 随着人工智能技术的不断进步,AIGC 逐渐在艺术领域崭露头角。它依…...
String IP和Int IP的互相转换
android中,wifiManager.connectionInfo.ipAddress 可以获取到wifi的ip地址,但这是一个int值,如何转换为常见的如192.168.1.129这种形式,以及这种形式如何转换回int值的形式。 这里ip分为4段,每一段的值都是0 ~ 255&am…...
【大数据学习 | 面经】yarn的资源申请和分配的单位-Container
在yarn中,资源的申请和分配是以container为单位进行的,而不是直接以application和task为单位。 每个提交到yarn上的应用程序(application)都有一个对应的ApplicationMaster(AM)。这个AM负责与ResourceMana…...
php基础:文件处理2
1.文件属性 当我们在程序中操作文件时,可能会使用到文件的一些常见属性,比如文件的大小、类型、修改时间、访问时间以及权限等等。PHP 中提供了非常全面的用来获取这些属性的内置函数,如下表所示。 2.目录操作 新建目录:mkdir(路…...
gradle下载慢解决方案2024 /12 /1android studio (Windows环境)
gradle下载慢解决方案2024 /12 /1 默认环境配置好了,环境配置和程序安装请出门右转 打开软件,点击右上角设置,找到如下设置页 选择本地安装并制定好你已经安装好的 gradle 应用保存即可 全局插件环境配置(新版本可以直接在设置中添加了) 找对应位置添加国内源并把前面的内置源…...
使用Java将PDF文件解析成Excel文件
安装pom依赖 <!-- 解析pdf--><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version> <!-- 请检查并使用最新版本 --></dependency>测试读取pdf文件…...
怎么区分直线模组中的导程和行程?
直线模组是一种直线传动装置,安装方便,精度高,其使用范围广。直线模组中的导程和行程是两个不同的概念,它们分别描述了直线模组的不同性能参数。 直线模组的行程指的是模组能够正常移动的最大距离,即滑块预期移动的有效…...
算法日记 42 day 图论
今天来看看广度优先搜索,并且写几个题。刷到这里我才想起来,当时第一次面试的时候问的就是这个题,当时大概知道一点思路,但不清楚是图论方面的,更别说写出来了。 广度优先搜索(BFS) 不同于深度…...
STM32 GPIO 8种工作模式的应用场景
目录 一、四种输入模式1、模拟输入:2、浮空输入:3、上拉输入:4、下拉输入: 二、四种输出模式1、推挽输出:2、开漏输出:3、复用推挽输出:4、复用开漏输出: 一、四种输入模式 1、模拟…...
JVM 类加载器有哪些?双亲委派机制的作用是什么?如何自定义类加载器?
类加载器分类 大家好,我是码哥,可以叫我靓仔,《Redis 高手心法》畅销书作者。 先回顾下,在 Java 中,类的初始化分为几个阶段: 加载、链接(包括验证、准备和解析)和 初始化。 而 类加载器&#x…...
揭秘:短视频矩阵源码功能开发分析!!!
一、短视频矩阵系统源码概述 短视频矩阵系统源码旨在为内容创作者及企业提供一种高效的工具,以实现对多个短视频账户的一站式管理。该系统支持同时管理、发布、监控和优化多达1000个短视频账户,显著提升了操作效率。 二、主要功能 1. 多账号管理 该系…...
leetcode - 2337. Move Pieces to Obtain a String
Description You are given two strings start and target, both of length n. Each string consists only of the characters ‘L’, ‘R’, and ‘_’ where: The characters ‘L’ and ‘R’ represent pieces, where a piece ‘L’ can move to the left only if there i…...
第九篇:k8s 通过helm发布应用
什么是helm? Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包,类似的,在K8s中我们可以使用helm来管理资源对象(Deployment、Service、Ingress…...
MySQL:锁机制
锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。 在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效…...
在lio_sam中融入GPS
文章目录 概要GPS里程计GPS因子反算后的GPS里程计概要 在LIO(激光惯性里程计)系统中,将GPS信息融合到里程计中,借助GTSAM(Georgia Tech Smoothing and Mapping)库进行因子图优化,可以有效提升全局定位精度。 GPS里程计 利用GeographicLib第三方库将经纬度投影到局部笛…...
快速构建NLP理论知识体系
NLP理论知识体系 一句话解释NLPNLP模型及原理简述1、Rag 一句话解释NLP 如果我们要实现机器翻译、情感分析、问答系统、文本摘要、聊天机器人、构造智能化的辅助文件填写模板,NLP可以通过现成的模型对输入的语音、文字、图片进行处理(分词、标词性、去停…...
长期稳定境外号码解决方案:内地用户如何打电话、接收短信和验证码
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 三大方案对比 📒📝 免费且稳定的境外号码📝 长期稳定且符合本地政策📝 适合低频使用者⚓️ 相关链接 ⚓️📖 介绍 📖 许多用户在日常生活中需要拨打境外电话、接收短信或验证码,尤其是跨境电商从业者,更是对境外号…...
SpringCloud 与 SpringBoot版本对应关系,以及maven,jdk
目录 SpringCloud 与 SpringBoot各版本的对应关系 方式一 Learn 方式二 OverView SpringBoot与JDK、maven 容器等对应关系 SpringCloud 与 SpringBoot各版本的对应关系 SpringCloudSpringBootFinchley2.0.xFinchley.SR1Spring Boot >=2.0.3.RELEASE and <=2.0.9RELEAS…...
FSMC实验
FSMC ,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接, STM32 的 FSMC 接口支持包括 SRAM 、 NAND FLASH 、 NOR FLASH 和 PSRAM 等存储器。 从上图我们可以看出, STM32 的 FSMC 将外部设…...
K8s命令大全(Complete List of K8s Commands)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...
C++学习笔记
小甲鱼学习课程 02 #include <iostream> 头文件 iostream iostream 翻译为IO流 输入输出流 using namespace std; 引入命名空间 c标准库所使用的所有标识符都是在同一个特殊的名字空间std中来定义的; 偷懒使用这句话; std::cout <…...
伺服控制电机多大功率合适?
随着现代工业自动化的发展,伺服控制电机在各个行业的应用愈加广泛。伺服电机以其精确的控制、高效的运行和高响应速度,成为许多机械设备中不可或缺的组成部分。然而,在选择伺服电机时,确定其功率大小是一个关键环节。那么…...
《OpenCV 基础全攻略:从入门到精通》
《OpenCV 基础全攻略:从入门到精通》 一、OpenCV 简介(一)特点(二)优势(三)应用场景 二、安装与配置三、OpenCV 函数详解1. 图像读取函数 cv2.imread ()2. 图像显示函数 cv2.imshow ()3. 图像保…...
spring ai如何使用function call调用第三方模型
这里写自定义目录标题 背景什么是function call怎么用function call?总结 背景 一直困惑于ai是如何使用插件或者其他一些功能的,后来发现,很多大模型都支持function call功能,如何让大模型能够联网查询呢,function ca…...
2024 数学建模国一经验分享
2024 数学建模国一经验分享 背景:武汉某211,专业:计算机科学 心血来潮,就从学习和组队两个方面指点下后来者,帮新人避坑吧 2024年我在数学建模比赛中获得了国一(教练说论文的分数是湖北省B组第一࿰…...
javaweb-Mybaits
1.Mybaits入门 (1)介绍 (2) 2.Mybaits VS JDBC 3.数据库连接池 (1)SpringBoot默认连接池为hikari,切换为Druid有两种方式 方式一:加依赖 方式二:直接修改配置文件 …...
108.【C语言】数据结构之二叉树查找值为x的节点
目录 1.题目 代码模板 2.分析 分类讨论各种情况 大概的框架 关键部分(继续递归)的详解 递归调用展开图 3.测试结果 其他写法 4.结论 5.注意事项 不推荐的写法 1.题目 查找值为x的节点并返回节点的地址 代码模板 typedef int BTDataType; typedef struct BinaryT…...
Ant-Design-Vue 全屏下拉日期框无法显示,能显示后小屏又位置错乱
问题1:在全屏后 日期选择器的下拉框无法显示。 解决:在Ant-Design-Vue的文档中,很多含下拉框的组件都有一个属性 getPopupContainer可以用来指定弹出层的挂载节点。 在该组件上加上 getPopupContainer 属性,给挂载到最外层盒子上。 <temp…...
sec啥意思
sec的基本含义是秒,是时间的基本单位之一;在数学中表示正割函数;在计算机科学中有时指安全;在法语中意为干的等。 sec的多重含义与应用 sec在数学中的定义 在数学领域,尤其是三角学中,sec代表正割函数&a…...