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

stm32学习笔记---零基础入门介绍2

目录

STM32介绍

STM32家族系列

ARM介绍

ARM内核型号种类

我们学习用的STM32

片上资源/外设(Peripheral)

命名规则

系统结构

引脚定义

STM32的启动配置

STM32最小系统电路和其他部分电路

最小系统板的实物图

附:安装软件准备


声明:本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记,我之所以记录下来是为了方便自己日后复习。如果你也是跟着江科大的视频学习的,可以配套本专栏食用,如有问题可以QQ交流群:963138186

STM32介绍

ST公司,M是Microcontroller的首字母。

微控制器就是MCU(就是我们常说的单片机)

32的意思是这是一款32位的单片机。

ARM Cortex-M内核就是stm32内部的核心部分。(可以理解为ST公司给ARM内核加上一些外设,封装成了stm32,其他厂商也可以用ARM内核来封装成自己的芯片)

STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。

STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。

STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。

STM32家族系列

以下这些是目前STM32家族中的所有系列:

本专栏学习使用的是主流的STM32F1系列,它是有177的内核跑分和72MHz的Cortex-M3内核

ARM介绍

ARM既指ARM公司,也指ARM处理器内核

ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构

ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片

ARM内核型号种类

我们STM32使用的是Cortex-M内核是其中的一种。

根据应用场景来看,R系列(Realtime)主要应用于实时性很高的场景,比如硬盘控制器这些东西,应用场景比较少。M系列(Microcontroller)适用于嵌入式领域,主要是单片机领域。而A系列(Application)则是适用于高端应用型的领域,比如手机行业和电脑行业,A系列的发展比较快。

我们学习用的STM32

STM32F103C8T6

系列:主流系列STM32F1

内核:ARM Cortex-M3

主频:72MHz

RAM(运行内存):20K(实际的存储介质:SRAM)

ROM(程序存储器):64K(实际的存储介质:Flash闪存)

供电:2.0~3.6V(标准3.3V),注意我们之前学的51是5V供电,还有USB输出的电压也是5V,那5V是不在2.0~3.6V这个供电电压范围内的,不能直接给STM32供电。如果是5V电压,那需要加一个稳压芯片,把电压降到3.3V,再给STM32供电。

封装:LQFP48(总共有48个引脚),注意:如果是自己画板子的话要注意封装。

片上资源/外设Peripheral

以下这些是STM32F1整个系列的所有外设(注:并不是所有型号拥有全部的外设,我们使用的这款C8T6没有右列后面那四个外设)。这些外设就是我们将要具体学习的,先有个印象。

注:表中前两个深颜色的是位于Cortex-M3内核里面的外设,剩下的都是内核外的外设。

之后我们学习stm32会经常和以上这些外设的缩写字母打交道,所以大家先主要熟悉这些字母的意思,具体的功能之后都会一节一节学习。

命名规则

以后看到其他型号的STM32也都可以对照这个命名规则了解它的大致参数。

系统结构

我们来看一下这个芯片的系统结构,这个结构看起来比较复杂,现在这个阶段不需要每个部分都弄懂,大致的了解一下即可。

等我们学完自然就能看懂这个结构了,先了解一下,学完再回来看!

了解这个系统结构有利于你加深对STM32的认识,便于今后的学习。

那我们来看一下,我们可以把这个图分为四个部分:

那左上角的这个就是Cortex-M3的内核,内核引出来了三条总线,分别是ICode指令总线,DCode的数据总线,System系统总线。

这个ICode的总线和DCode的总线主要是用来连接flash闪存的,Flash里面存储的就是我们编写的程序。ICode指令总线就是用来加载程序指令的,DCode的数据总线是用来加载数据的,比如常量和调试参数这些。 除了ICode总线和Dcode总线,内核还引出了system系统总线。 System总线就连接到了其他的东西上面,比如SRAM用于存储程序运行时的变量数据),还有FSMC(但这个我们学习的芯片不会用到)。

下面这个AHB系统总线就是用于挂载主要的外设的,

AHB的意思是先进高性能总线,挂载的一般是最基本的或者性能比较高的外设,比如复位和时钟控制这些最基本的电路。还有SDIO也是挂载在AHB上的,再后来就是两个桥接接到了APB2和APB1两个外设总线上。

这个APB的意思是先进外设线用于连接一般的外设。因为AHB和APB的总线协议、总线速度还有数据传送格式的差异,所以中间需要加2个桥接来完成数据的转换和缓存。 AHB的整体性能比APB高一些,其中这个APB2的性能又比APB1高一些。APB2一般是和AHB同频率的,都是72MHz, APB1一般是36MHz。

所以APB2连接的都是一些外设中稍微重要的部分比如GPIO端口,还有一些外设的一号选手等,比如UASRT1、 SPI1、 TIM1、 TIM8(这个TIM8和TIM1一样,也是高级定时器,所以也是重要的外设)。还有ADC、EXTI、AFIO,也是接在APB2上面的。

那其他的像这些2、3、4、5号的外设,还有DAC、PWR、BKP等这些是次要一点的外设,都会分配到APB1上去。 当然在使用的时候,个人一般感觉不到APB2和AP1B1的性能差异,只需要知道这个外设是挂载到哪个总线上的就可以了。  那右下角的这一大部分,主要介绍的就是我们外设种类和分布。    

剩下最后左下角的这一部分就是DMA了,

这个DMA可以把它当做内核CPU的小秘书,比如有一些大量的数据搬运的活,让CPU来干的话就太浪费时间了。比如有个外设ADC模数转换,这个模数转换可以配置成连续模式,比如1ms转换一次,转换完的数据必须得转运出来,否则数据就会被覆盖丢失。如果直接让CPU来干这个活,那CPU每过一毫秒就得来转运一下数据。

这样会费时费力,影响CPU的正常工作,而且这个活就是简单的数据搬运,没必要CPU来干。于是DMA这个小秘书就出现了,他主要就是干这些像数据搬运这样简单且反复要干的事情。 那DMA通过DMA总线连接到总线矩阵上,它可以拥有和CPU一样的总线控制权,用于访问这些外设小弟。

当需要DMA搬运数据时,外设小弟就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据。

整个过程不需要CPU的参与,省下了CPU的时间来干其他的事情,那这就是DMA的用途。

引脚定义

引脚编号逆时针来看:

引脚功能表

以后我们会经常用到这个表,这个表就贴在这,最好存下来方便以后查看。

注:对于引脚功能,表中做了样色标记:

红色的是电源相关的引脚;

蓝色是最小系统相关的引脚;

绿色的是IO口、功能口这些引脚。

表中“类型”那一列中:S代表电源,I代表输入,O代表输出,IO代表输入输出。

“I/O口电平代表IO口所能容忍的电压”,FT代表它能容忍5V电压,没有FT的就只能容忍3.3V 的电压。如果没有FT的需要接5V的电平的话,就需要加装电平转换电路了。

“主功能”就是上电后默认的功能,一般和引脚名称相同。如果不同的话引脚的实际功能是主功能而不是引脚名称的功能。

“默认复用的功能”是IO口上同时连接的外设功能引脚,这个配置IO口的时候可以选择是通过IO口还是复用功能。

“重定义功能”这个作用是,如果有两个功能同时复用在了一个IO上,而你确实需要用到这两个功能,那么可以把其中一个复用功能重映射到其他端口上,前提是这个重定义功能的表里有对应的端口。

接着我们来依次看一下引脚定义:

第1号引脚是VBAT,它是备用电池供电的引脚。在这个引脚可以接一个3伏的电池当系统电源断电池备用电池可以给内部的RTC时钟和备份寄存器提供电源。

2号引脚是IO口或者侵入检测或者RTC,IO口可以根据程序输出或读取高低电平,是最基本也是最常用的功能的。侵入检测可以用来做安全保障的功能。 比如你的产品安全性比较高,可以在外壳加一些防拆的触点。然后接上电路到这个引脚上,如果有人强行拆开设备,那触点断开这个引脚的电平变化就会触发STM32的侵入信号,然后就会清空数据来保证安全。RTC的引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲。

3、4号引脚是IO口或者接32.768千赫兹的RTC晶振。

5、6号引脚接系统的主晶振,一般是8MHz的。 然后芯片内有锁向环电路,可以对这个8MHz的频率进行倍频,最终产生72MHz的频率作为系统的主时钟。

7号NRST是系统复位引脚,N代表它是低电平复位的。

8、9号引脚是内部模拟部分的电源,比如ADC、RC震荡器等,VSS是负极接地GND,VDD是正极接3.3伏。

10号引脚到19号引脚都是IO口。其中PA0还兼具了WKUP的功能,这个可以用于唤醒处于待机模式的STM32。

20号引脚是IO或者BOOT1引脚,Boot引脚是用来配置启动模式的,这个我们等会儿再讲。另外这个IO口引脚名称没有加粗,这个意思是我推荐优先使用这些加粗的IO口没有加粗的IO口可能需要进行配置,或者兼具其他功能使用的时候需要留意一下

接着21、22号也都是IO口。 23、24号的VSS-1和VDD-1是系统的主电源口,同样的VSS是负极,VDD是正极。 注:其他引脚比如VSS-2、VDD-2、VSS-3、VDD-3都是系统的主电源口,这里STM32内部采用了分区供电的方式,所以供电口会比较多,在使用时把VSS都接GND,VDD都接3.3伏即可。

25~33号都是IO口。

34号加上27号到40号,这些是IO口或者调试端口。表上面默认的主功能是调试端口,调试端口就是用来调试程序和下载程序的。这个STM32支持SWD和JTAG两种调试方式,SWD需要两根线,分别是SWDL和SWCLK。JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。我们学习使用的是STLINK来下载调试程序的,STLINK用的是SWD的方式,所以只需要占用PA13、PA14这两个IO口。在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换为普通的IO口来使用,但要在程序中进行配置,不配置的话,默认是不会用作IO口的。

41号到43号,45~46号都是IO口。

最后剩下的44号BOOT0和刚才介绍的BOOT1一样,也是用来做启动配置的。

STM32的启动配置

然后我们来看那一下STM32的启动配置,也就是我们刚才看到的BOOT0和BOOT1两根引脚的功能。

启动配置的作用就是指定程序开始运行的位置,一般情况下程序都是在flash程序存储器开始执行。但是在某些情况下,我们也可以让程序在别的地方开始执行,用以完成特殊的功能。

在STM32F10XXX里,可以通过配置BOOT0和BOOT1引脚来选择三种不同的启动模式。

当BOOT0接0,也就是接地的意思。这个时候BOOT1接X,即无论接什么,启动模式都是主闪存存储器的模式,这时候主闪存存储器被选为启动区域,也就是正常的执行flash闪存里面的程序,这个模式是最常用的模式,一般情况下都是这个配置。

那当BOOT1接0,BOOT0接1,接1就是接到3.3伏电源正的意思,那启动模式就是系统存储器,说明是系统存储器被选为启动区域其实这个模式就是用来做串口下载用的,这个系统存储器存在就是STM32中一段boot loader程序,boot loader程序的作用就是接收串口的数据,然后刷新到主闪存中,这样就可以使用串口下载程序了。一般我们需要串口下载程序的时候,会配置到这个模式上。

那什么时候我们需要用到串口下载呢?我们可以看到这个引脚定义表。 刚才我们说了,这5个是调试端口,它们既可以用来下载程序,也可以作为普通IO口使用。

如果我们在程序中把这5个端口全部配置成了IO口,那这就坏了,因为这个芯片没有调试端口了,也就下载不了程序了。所以在你配置这几个端口的时候要小心一点,不要把它们全部都变成普通IO口了,那如果全部变成IO口了,下载不进去程序了,这就需要用到串口的方式下载程序了。 如果想使用串口下载,就需要配置BOOT1为0, BOOT0为1。当然串口下载也不光是用来救急的,如果没有STLINK,也没有JLINK,那就可以使用串口来进行下载程序,这样就多了一种下载程序的方式。

然后就是BOOT1接1,BOOT0接1的情况,这时配置的是内置SRAM启动,这个模式主要是用来进行程序调试的,现阶段用的比较少。

在系统复位后,System clock的第4个上升沿boot引脚的值将被锁定,用户可以通过设置BOOT1和BOOT0引脚的状态来选择复位后的启动模式这个意思是BOOT引脚的值是在上电复位后的一瞬间有效的,之后就随便了。

在这个引脚定义中,我们可以看到这个BOOT1和PB2是在同一个引脚上的,也就是在上电的瞬间是BOOT1的功能,当第4个时钟过之后就是PB2的功能的。

 以上就是有关boot引脚的部分,看完了引脚定义和这个boot引脚的配置,我们对这个芯片是怎么用的。如果我们想到STM32正常工作,那么首先就需要把电源部分和最小系统部分的电路连接好,也就是这个表中标红色和蓝色的部分。

STM32最小系统电路和其他部分电路

接下来看一下STM32最小系统电路。

一般来说,我们单片机单独只有芯片的话是无法工作的,我们需要为它连接最基本的电路,那这些最基本的电路就叫做最小系统电路

右边这一部分就是STM32及供电的部分,其中我们可以看到这四个分区供电的主电源和模拟部分电源都连接了供电引脚。

 VSS都连接了GND,VDD都连接了3V3,也就是3.3伏。在这个3.3伏和GND之间一般会连接一个滤波电容,这个电容可以保证供电电压的稳定,像我们在设计电路的时候,一般只要遇到供电都会习惯上的加上几个滤波电容,当然加这个滤波电容也是非常必要的,大家自己设计电路的时候可以注意一下。

剩下还有一个VBAT是接备用电池的。

如果需要接备用电池,那就这样来接:

可以选择一个3伏的纽扣电池,正极接VBAT,负极接GND就行了。

备用电池是给RTC和备份寄存器服务的,如果不需要这些功能就不用接备用电池,那这个VBAT直接接3.3伏即可,或者悬空也是没有问题的。 这就是整个供电的部分,可以说STM32的供电还是比较多的,而且芯片四周都有供电引脚。  

接着我们再来看一下晶振部分电路。

这是一个典型的晶振电路,在这里接了一个8MHz的主时钟晶振,STM32的主晶振一般都是8MHz。

8MHz经过内部锁相环倍频,得到72MHz的主频。 这个晶振的两根引脚分别通过这两个网络标号连接到STM3、2的5、6号引脚,

另外还需要接两个20pF的电容作为启震电容,电容的另一端接地即可。

这就是晶振电路,如果你需要RTC功能的话,还需要再接一个32.768千赫兹的晶振电路和这个一样,接在3、4号引脚。

OSC32就是32.768千赫兹晶振的意思。 为什么要用32.768千赫兹呢?

因为32768是2的15次方,内部RTC电路经过2的15次方分频就可以生成一秒的时间信号了。

接着我们再来看一下复位电路

这个复位电路是一个10K的电阻和0.1微法的电容组成的,它用来给单片机提供复位信号。中间的NRST接在STM32的7号引脚。

 NRST是低电平复位的,当这个复位电路在上电的瞬间,电容是没有电的。电源通过电阻开始向电容充电,并且此时电容呈现的是短路状态,那NRST引脚就会产生低电平。

当电容逐渐充满电时,电容就相当于断路,此时NRST就会被R1上拉为高电平,

因此,上电瞬间的波形就是先低电平,然后逐渐高电平。 这个低电平就可以提供STM32的上电复位信号电容充电还是非常快的,所以在我们看来单片机就在上电的一瞬间复位的,这就是复位电路的作用

电容左边还并联了一个按键。

这个可以提供一个手动复位的功能,当我们按下按键时,电容被放电,并且NRST引脚也通过按键被直接接地了,这就相当于手动产生了低电平复位信号,按键松手后,NRST又回归高电平,此时单片机就从复位状态转为工作状态。平时我们也可以见到这种复位按键,一般在设备上有个小孔,当设备死机并且还不方便断电重启时,我们就可以拿一个针戳一下这个小孔里的按键,这样就会使设备复位了。  这就是手动复位的功能,按一下按键,程序就从头开始运行的意思。

下面是启动配置

H1相当于开关的作用,波动这个开关就可以让BOOT引脚选择3.3伏还是GND了。

在我们这个最小系统板上,使用的是这种跳线帽来充当开关的功能。

当跳线帽插在左边两个引脚时,就相当于接地。

插在右边两个角时,就相当于接3.3伏。

这样就可以配置boot的高低电平了。

当然,你要自己设计电路的话,接个拨码开关也是没问题的,这样比插跳线帽还方便一些。

那最后剩下的就是下载端口了

如果你是用STLINK下载程序的话,那需要把SWDL和SWCLK这两个引脚引出来,方便接线。另外再把3.3伏和GND引出来,这个GND是必须引出来的,3.3伏如果你板子自己有供电的话,可以不引。不过建议还是都引出来,这样方便一些。

以上就是有关最小系统电路的内容了,如果你自己画板子的话,可以参考一下这个电路。

当然,如果你是用STM32最小系统板来设计电路的话,就不需要这个最小系统了,因为这个最小系统板上已经包含了这些电路。

再补充一下最小系统板原理图的其他电路模块。

这里接了两个测试的led。一个直接接到了VCC3V3和GND,作为电源指示灯。另一个接到了PC13,作为IO口的测试灯。

然后这个是一个稳压芯片,用于给5伏的电降到3.3伏,给STM32供电。

它左边的输入是这个USB的5伏电源,右边输出的是3.3伏。

这个芯片的型号可能应该是XC6204,是一个3.3伏的稳压芯片。 另外还有XC6206、AMS1117等,这些都是常用的稳压芯片,大家设计电路的时候可以参考一下。  那这两排就是引脚的排针了,这两个排针把芯片的引脚都引出来,方便我们接线的。

这个是USB的接口

它接的P11和PV12,是STM32的USB引脚,可以进行USB通信。另外这个USB还可以提供5伏的供电,这个电经过我们刚才介绍的这个稳压芯片降到3.3伏。

剩下的电路都是3.3伏的供电。   

最小系统板的实物图

最后我们再看一下这个最小系统板的实物图

大概的认识一下板子上的原件,那这个中间的黑色小芯片就是STM32F103C8T6

左边这两个跳线帽是用来配置BOOT引脚的

下面这个是复位按键

在左边是这个USB接口,它可以进行USB通信,也可以为板子供电

右边这个金属外壳的是8MHz的主时钟晶振

这个黑色的是32.768千赫兹的RTC晶振

然后再右边是两个led,上面这个是PWR电源指示灯,下面那个是接在PC13口的测试灯

最右边是SWD的调试接口,用来下载程序的

上下两排是用于接线的排针

然后看一下背面这个5个角的小芯片,就是3.3伏稳压芯片。

剩下的这些就是电容电阻这些小软件了。

如果你觉得东西太多记不住,那就先不要硬记,等学完所有的外设之后再回头看看这一篇,你就会有新的感悟。

本篇STM32入门介绍就到这里,下篇开始具体学习!

附:安装软件准备

软件安装包:

链接:https://pan.baidu.com/s/16uJKk0nId6BD-25Q8NLN4g

提取码:asgr

安装步骤请看:

https://www.bilibili.com/video/BV1th411z7sn?p=3

以上先做个基本的了解,不要求记忆,以后学完了就熟悉了。

QQ交流群:963138186

本篇就到这里,下篇继续!欢迎点击下方订阅本专栏↓↓↓

相关文章:

stm32学习笔记---零基础入门介绍2

目录 STM32介绍 STM32家族系列 ARM介绍 ARM内核型号种类 我们学习用的STM32 片上资源/外设(Peripheral) 命名规则 系统结构 引脚定义 STM32的启动配置 STM32最小系统电路和其他部分电路 最小系统板的实物图 附:安装软件准备 声明…...

搭建取图系统app源码开发,满足广泛应用需求

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 图片已成为信息传递的重要媒介,广泛应用于各个领域。为满足日益增长的图片需求,搭建一款高效的取图系统,可以为用户提供便捷、全面的…...

语音质量评价方法之MOS

引言 在语音增强、语音合成、语音转换、声音转换、语音克隆、语音修复等等领域,常常要对输出的语音进行评价。对语音的质量评价一般关注两个方面,即主观评价和客观评价。主观评价就是人凭借听觉感受对语音进行打分,客观评价比较广泛&#xf…...

gorm简介

【1】ORM: 即Object-Relational Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它们就可以了。 【2】GORM gorm是go语言的一个orm…...

MySQL:SELECT list is not in GROUP BY clause 报错 解决方案

一、前言 一大早上测试环境,发现测试环境的MySQL报错了。 SELECT list is not in GROUP BY clause and contains nonaggregated column二、解决方案 官方文档中提到: 大致意思: 用于GROUP BY的SQL / 92标准要求满足以下条件: SE…...

IPython的使用技巧

1、解释说明 IPython是一个强大的Python交互式shell,它提供了丰富的功能,如自动补全、历史记录、内置帮助等。IPython使得在命令行下编写和测试Python代码变得更加方便和高效。 2、使用示例 安装IPython: pip install ipython启动IPython…...

Spring Boot 多线程例子

在Spring Boot中,多线程可以通过Java的并发工具来实现。以下是一些常见的多线程实现方法: 1. 使用Async注解和CompletableFuture: 首先,需要在Spring Boot应用的主类上添加EnableAsync注解,以启用异步支持。 java Spr…...

java干货 线程池的分析和使用

文章目录 一、了解线程池1.1 什么是线程池1.2 为什么需要线程池 二、四种线程池的使用2.1 newFixedThreadPool2.2 newCachedThreadPool2.3 newSingleThreadExecutor2.4 newScheduledThreadPool 三、自定义线程池3.1 线程池七大核心参数3.2 线程池内部处理逻辑 一、了解线程池 …...

文本张量入门

张量,英文为Tensor,是机器学习的基本构建模块,是以数字方式表示数据的形式。 张量的基本类型: 创建一个标量(0维张量),也就是一个单独的数字 scalar torch.tensor(7) scalar.ndim # 返回张量的维度 0 # …...

js文字如何轮播?

<div class"td-style"> <span class"td-text">内容1内容1内容1内容1内容1内容1</span> </div> css&#xff1a; <style> .td-style { width: 160px; height: 72px; overflow: hidden; white-…...

Linux 五种IO模型

注&#xff1a;还有一种信号驱动IO&#xff0c;使用较少暂不讨论&#xff1b; 一&#xff0c;区分阻塞、非阻塞和同步、异步 看了很多文章对这两组概念解释和对比&#xff0c;说的太复杂了&#xff0c;其实没必要&#xff0c;两句话就能说清楚。 首先&#xff0c;对于读数据rec…...

深度解析响应式异步编程模型

上一篇文章中我们聊了一下线程池,基于线程池的多线程编程是我们在高并发场景下提升系统处理效率的有效手段,但却不是唯一的。今天我们来看一下另一种异步开发的常用手段-响应式编程模型 传统多线程模型的缺陷 多线程模型是目前应用最为广泛的并发编程手段,但凡遇到什么性能…...

一个软件是如何开发出来的呢?

一、前言 如今&#xff0c;AI大爆发的时代&#xff0c;作为一名IT从业者&#xff0c;你是否也想尝试开发一套自己的系统&#xff0c;实现那些看似有可能实现的天马行空的想法&#xff0c;变成一个优秀甚至伟大的产品&#xff0c;甚至带来某个行业的革新&#xff0c;那作为一名…...

宝塔板面有哪些优势

哈喽呀&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;在当今数字化时代&#xff0c;随着云计算和互联网技术的飞速发展&#xff0c;服务器管理成为了许多企业和个人开发者不可或缺的一部分。然而&#xff0c;传统服务器管理方式的复杂性和技术门槛往往令初…...

Mybatis中BaseEntity作用

新建各种对象的时候&#xff0c;一般来说&#xff0c;有几个属性是所有对象共有的&#xff0c;比如说id,is_del&#xff0c;is_enable这些&#xff0c;然后设置一个基础对象&#xff0c;以后新建所有对象的时候都继承它&#xff0c;就省的每次都要写这些共有的属性了...

IDEA2023中使用run Dashboard面板?实现批量运行微服务

1、直接点击Add service--->Run Configuration Type---->Spring Boot 2、这样就出现了run Dashboard面板&#xff0c;可同时运行多个工程模块&#xff0c;shift选中所有启动类组命名&#xff08;Group Configurations&#xff09; 3、启动所有的项目...

分数受限,鱼和熊掌如何兼得?专业or学校,这样选最明智!

文章目录 引言一、专业解析二、名校效应分析三、好专业和好学校的权衡结论个人建议 引言 24年高考帷幕落下&#xff0c;一场新的思考与选择悄然来临。对于每一位高考考生&#xff0c;学校和专业都是开启大学新生活的两个前置必选项。但有时候“鱼与熊掌不可兼得”&#xff0c;…...

CentOS 8.5 - 配置ssh的免密登录

文章目录 生成ssh密钥公钥内容放入服务器 生成ssh密钥 在本地主机安装 ssh工具&#xff0c;并生成公钥、私钥。 # 命令行输入 ssh-keygen -r rsa# 会在当前用户的家目录下生成一个.ssh目录公钥内容放入服务器 将上一步生成的id_rsa.pub公钥的内容复制到远程服务器 # 编辑文…...

反转链表(java精简版)

反转一个单向链表。 public class ReversingLinkedList {static class Node {int val;Node next;public Node(int val) {this.val val;}public boolean hasNext() {return next ! null;}}public static void main(String[] args) {//构造Node head null;Node shift null;for…...

QPair使用详解

QPair使用详解 一、创建和初始化 QPair1.1 QPair默认构造1.2 使用值初始化1.3 QPair拷贝构造 二、访问 QPair 的值2.1 修改 QPair 的值2.2 比较 QPair2.3 使用 qMakePair 辅助函数2.4 使用 QPair 的场景 三、QPair自定结构体3.1 定义自定义结构体3.2 在 QPair 中使用自定义结构…...

C# 语言在AGI 赛道上能做什么

自从2022年11月OpenAI正式对外发布ChatGPT依赖&#xff0c;AGI 这条赛道上就挤满了重量级的选手&#xff0c;各大头部公司纷纷下场布局。原本就在机器学习、深度学习领域占据No.1的Python语言更是继续稳固了自己AI一哥的位置。凭借着Microsoft 和 OpenAI 长期以来一直是紧密相连…...

微信小程序-API 本地存储

一.本地存储-同步API 存储 &#xff1a; wx.setStorageSync 获取&#xff1a;wx.getStorageSync 删除&#xff1a;wx.removeStorageSync 清空&#xff1a;wx.clearStorageSync 代码&#xff1a; save(){//存储wx.setStorageSync(id, 1) wx.setStorageSync(obj, {name:"te…...

TensorFlow音频分类修复

原先传wav格式,后来发现前端生成的wav格式不完整 后端改mp3 其实是mp3和wav都可以接收 前端MP3和wav格式不正确,导致可以接收,但都无法计算时长 该文作废,可能导致音频分类不准确 修复TensorFlow放到生产后报错问题-CSDN博客 依赖 <dependency><groupId>or…...

C#学习系列之ListView垂直滚动

C#学习系列之ListView垂直滚动 前言垂直滚动总结 前言 当ListView中不断增加新内容&#xff0c;经常是纵向滚动。 垂直滚动 这个是关键&#xff1a;<VirtualizingStackPanel/> <ListView.ItemsPanel><ItemsPanelTemplate><VirtualizingStackPanel/>&…...

MySQL 常用函数总结

MySQL 提供了丰富的内置函数&#xff0c;用于在查询中进行各种计算、字符串处理、日期和时间操作等。这些函数可以帮助我们更有效地从数据库中检索和处理数据。下面将总结一些 MySQL 中常用的函数及其用法。 1. 数值函数 1.1 ROUND() ROUND() 函数用于对数值进行四舍五入操作…...

SpingBoot快速入门下

响应HttpServietResponse 介绍 将ResponseBody 加到Controller方法/类上 作用&#xff1a;将方法返回值直接响应&#xff0c;如果返回值是 实体对象/集合&#xff0c;将会自动转JSON格式响应 RestController Controller ResponseBody; 一般响应 统一响应 在实际开发中一般…...

什么是symbol?

在ES6&#xff08;ECMAScript 2015&#xff09;中&#xff0c;Symbol是一种新的基本数据类型&#xff0c;它的主要特点是独一无二且不可变。以下是关于ES6中Symbol的详细解释&#xff1a; 定义与特性&#xff1a; Symbol是ES6引入的一种基本数据类型&#xff0c;用于表示独一无…...

Tailwind CSS 响应式设计实战指南

title: Tailwind CSS 响应式设计实战指南 date: 2024/6/13 updated: 2024/6/13 author: cmdragon excerpt: 这篇文章介绍了如何运用Tailwind CSS框架创建响应式网页设计&#xff0c;涵盖博客、电商网站及企业官网的布局实例&#xff0c;包括头部导航、内容区域、侧边栏、页脚…...

如何把模糊的图片修复变清晰,怎么做?有那些方法?

模糊照片怎么修复清晰&#xff1f;有些照片可能会因为保存不当或其他原因而变得模糊&#xff0c;这些照片删掉又觉得可惜&#xff0c;那么如何让这些照片焕然一新呢&#xff1f;今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来&#xff0c;给大家演…...

思科路由器密码恢复方法

1.密码恢复原理 Cisco路由器保存了几种不同的配置参数&#xff0c;并存放在不同的内存模块中。 Cisco系列路由器的内存有&#xff1a;ROM&#xff0c;闪存&#xff08;Flashmemory&#xff09;,RAM&#xff0c;不可变RAM和动态内存&#xff08;DRAM&#xff09;等5种。 一般情况…...

容桂网站制作公司/河北网站seo外包

http://note.youdao.com/noteshare?id4efcb6441063dae956c226f91c161897转载于:https://www.cnblogs.com/taiyang-li/p/6754743.html...

网站下要加个备案号 怎么做/网络自动推广软件

虚拟机复制后&#xff0c;由于SID都是一样的&#xff0c;所以在做AD环境内的应用实验时&#xff0c;经常会出现问题现在放一个SID更新工具&#xff0c;供以后使用转载于:https://blog.51cto.com/fishvsfrog/1220041...

免费婚庆网站模板/做一个网站需要多少钱

方法一&#xff1a; 思路&#xff1a;使用group by分组&#xff0c;再用count计算每组的个数&#xff0c;最后用having比较计算后的值大于1的数据。 select PRODUCT_CODE from TM_CIS_REQ_PRD_HIS_COUNT group by PRODUCT_CODE,CREDIT_ORG_CODE,REQ_DATE …...

桐庐县网站建设/武汉 网络 推广

2010年1月12日上午8:43分&#xff0c;百度无法访问&#xff1f;&#xff1f;&#xff1f;&#xff1f;被黑了&#xff1f;8:47分&#xff0c;验证百度贴吧、百度知道等均无法打开。8:52分&#xff0c;尝试ping百度域名&#xff0c;竟然正常……8:56分&#xff0c;听同事说广州有…...

南京高端网站建设/新公司如何做推广

开头 Spring框架自诞生以来一直备受开发者青睐&#xff0c;有人亲切的称之为&#xff1a;Spring 全家桶。Spring更是避免了重复造轮子的工作并跟随着互联网行业的发展做出不断的更新&#xff0c;很多研发人员把spring看作心目中最好的Java项目&#xff0c;没有之一。 **可以毫…...

传媒网站给行业做宣传/长沙疫情最新消息今天封城了

三角形面积如【图1】所示。图中的所有小方格面积都是1。 那么&#xff0c;图中的三角形面积应该是多少呢&#xff1f;请填写三角形的面积。不要填写任何多余内容或说明性文字。 可以用大的正方形面积减去三个直角三角形的面积。 上面三角形面积&#xff1a;8 左边三角形面积&am…...