STM32面试知识点总结分析

news2024/11/25 1:02:09

一、STM32F1和F4的区别?

内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;

主频不同:F1主频72MHz,F4主频168MHz;

浮点运算:F1无浮点运算单位,F4有;

功能性能:F4外设比F1丰富且功能更强大,比如GPIO翻转速率、上下拉电阻配置、ADC精度等;

内存大小:F1内部SRAM最大64K,F4有192K(112+64+16)。

二、介绍一下STM32启动过程

通过Boot引脚设定,寻找初始地址

初始化栈指针 __initial_sp

指向复位程序 Reset_Hander

设置异常中断 HardFault_Handler

设置系统时钟 SystemInit

调用C库函数 _main

三、介绍一下GPIO

GPIO 8种工作模式(gpio_init.GPIO_Mode):

(1) GPIO_Mode_AIN 模拟输入
(2) GPIO_Mode_IN_FLOATING 浮空输入
(3) GPIO_Mode_IPD 下拉输入
(4) GPIO_Mode_IPU 上拉输入
(5) GPIO_Mode_Out_OD 开漏输出
(6) GPIO_Mode_Out_PP 推挽输出
(7) GPIO_Mode_AF_OD 复用开漏输出
(8) GPIO_Mode_AF_PP 复用推挽输出

APB2负责 AD,I/O,高级TIM,串口1。

APB1负责 DA,USB,SPI,I2C,CAN,串口2345,普通TIM,PWR

四、UART

  • 问题一:串行通信方式介绍

同步通信:I2C 半双工,SPI 全双工

异步通信:RS485 半双工、RS232 全双工

  • 问题二:串口配置

串口设置的一般步骤可以总结为如下几个步骤:

(1)串口时钟使能,GPIO时钟使能

(2)串口复位

(3)GPIO端口模式设置

TX的GPIO工作模式为:GPIO_Mode_AF_PP;  //复用推挽输出

RX的GPIO工作模式为:GPIO_Mode_IN_FLOATING; //浮空输入

(4)串口参数初始化主要包含:波特率设置(115200)、8个数据位、1个停止位、无奇偶校验位、无硬件数据流控制、收发模式。

(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)

(6)使能串口

(7)编写中断处理函数

  • 问题三:USART主要特点

(1)全双工操作(相互独立的接收数据和发送数据);

(2)同步操作时,可主机时钟同步,也可从机时钟同步;

(3)独立的高精度波特率发生器,不占用定时/计数器;

(4)支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;

(5)由硬件支持的奇偶校验位发生和检验;

(6)数据溢出检测;

(7)帧错误检测;

(8)包括错误起始位的检测噪声滤波器和数字低通滤波器

(9)三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;

(10)支持多机通信模式;

(11)支持倍速异步通信模式。

应用场景:GPS、蓝牙、4G模块

五、I2C

问题一:I2C 总线在传送数据过程中共有三种类型信号

(1)开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。

(2)结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。

(3)应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。

CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

问题二:I2C主机模式端口该怎么配置

硬件模式:复用开漏输出、既不上拉也不下拉。(快速模式:400 Kbit/s)

软件模拟:推挽输出、配置上拉电阻。

问题三:I2C仲裁机制?

I2C 仲裁机制,理解了 线“与”(Wired-AND),就一目了然了。简单说,它遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。

硬件模式: 是由通信速率设置的

/* STM32 I2C 快速模式 */#define I2C_Speed 400000/* 通信速率 */I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;

软件模拟: 没有设置通信速率,该怎么计算呢?

通过I2C总线位延迟函数 i2c_Delay:

static void i2c_Delay(void){  uint8_t i;  /*      下面的时间是通过安富莱AX-Pro逻辑分析仪测试得到的。    CPU主频72MHz时,在内部Flash运行, MDK工程不优化    循环次数为10时,SCL频率 = 205KHz     循环次数为7时,SCL频率 = 347KHz, SCL高电平时间1.5us,SCL低电平时间2.87us      循环次数为5时,SCL频率 = 421KHz, SCL高电平时间1.25us,SCL低电平时间2.375us     IAR工程编译效率高,不能设置为7  */  for (i = 0; i < 10; i++);}

应用场景:PMIC、加速度计、陀螺仪

六、SPI

  • 问题一:SPI需要几根线?

SPI 接口一般使用 4 条线通信:

MISO 主设备数据输入,从设备数据输出。

MOSI 主设备数据输出,从设备数据输入。

SCLK 时钟信号,由主设备产生。

CS 从设备片选信号,由主设备控制。

  • 问题二:SPI通信的四种模式?

SPI 有四种工作模式,各个工作模式的不同在于 SCLK 不同, 具体工作由 CPOL,CPHA 决定。

(1)CPOL: (Clock Polarity),时钟极性。

SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1。

CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;

CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

(2)CPHA:(Clock Phase),时钟相位。

相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,
0对应着第一个边沿,1对应着第二个边沿。

CPHA=0,表示第一个边沿:

对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;

对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;

CPHA=1,表示第二个边沿:

对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;

对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;

  • 问题三:该如何确定使用哪种模式?


(1)先确认从机需求的 SCLK 极性,不工作时是在低电位还是高电位,由此确认 CPOL 为 0 或 1。看原理图,我们设置串行同步时钟的空闲状态为高电平所以我们选择 SPI_CPOL_High。也就是CPOL为1。

(2)再由slave芯片 datasheet 中的时序图确认 slave 芯片是在 SCLK 的下降沿采集数据,还是在SCLK的上升沿。

翻译一下:W25Q32JV通过SPI兼容总线访问,包括四个信号:串行时钟(CLK),芯片选择(/CS),串行数据输入(DI)和串行数据输出(DO)。

标准SPI指令使用DI输入引脚串行地将指令、地址或数据写入CLK上升沿上的设备。DO输出引脚用于从CLK下降沿上的设备读取数据或状态。支持模式0(0,0)和3(1,1)的SPI总线操作。

模式0和模式3关注的是当SPI总线主端处于待机状态,数据没有被传输到串行Flash时CLK信号的正常状态。对于模式0,在下降和上升时,CLK信号通常是低的边缘/ CS。对于模式3,在/CS的下降和上升边缘上CLK信号通常是高的。

既然串行同步时钟的空闲状态为高电平,这里我们选择第二个跳变沿,所以选择 SPI_CPHA_2Edge。也就是CPHA为1。

即,我们选择的是模式3(1,1)。

应用场景:SPI Flash,W25Q32 存储器容量 32Mb (4M x 8),即4M byte

七、CAN

  • 问题一:CAN总结介绍一下

    CAN控制器根据 CAN_L 和 CAN_H上 的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者比居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

    问题二:CAN初始化配置步骤?

    (1)配置相关引脚的复用功能,使能CAN时钟

    (2)设置CAN工作模式及波特率等(CAN初始化环回模式,波特率500Kbps )

    (3)设置滤波器

    问题三:CAN发送数据格式

    CanTxMsg TxMessage;TxMessage.StdId=0x12; //标准标识符TxMessage.ExtId=0x12; // 设置扩展标示符TxMessage.IDE=CAN_Id_Standard; // 标准帧TxMessage.RTR=CAN_RTR_Data; // 数据帧TxMessage.DLC=len; // 要发送的数据长度 发送8个字节for(i=0;i<len;i++)  TxMessage.Data[i]=msg[i]; //数据

八、DMA

  • 问题一:DMA介绍?

直接存储器存取(DMA) 用来提供在外设和存储器之间,或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

  • ​问题二:DMA传输模式有几种?

DMA_Mode_Circular 循环模式

DMA_Mode_Normal 正常缓存模式

应用场景:GPS、蓝牙,都是用的循环采集,DMA_Mode_Circular模式。

一个比较重要的函数,获取当前剩余数据量大小,根据设置的接收buff大小减去当前剩余数据量 ,得到当前接收数据大小。

九、中断

  • 问题一:描述一下中断的处理流程?

    (1)初始化中断,设置触发方式是上升沿/下降沿/双沿触发。

    (2)触发中断,进入中断服务函数

  • 问题二:STM32的中断控制器支持多少个外部中断?

STM32的中断控制器支持 19 个外部中断/事件请求:

从图上来看,GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线 0 ~ 15。

另外四个EXTI线的连接方式如下:

● EXTI线16连接到PVD输出

● EXTI线17连接到RTC闹钟事件

● EXTI线18连接到USB唤醒事件

● EXTI线19连接到以太网唤醒事件(只适用于互联型产品)

中断服务函数列表:

IO口外部中断在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数。

EXTI0_IRQHandler

EXTI1_IRQHandler

EXTI2_IRQHandler

EXTI3_IRQHandler

EXTI4_IRQHandler

EXTI9_5_IRQHandler

EXTI15_10_IRQHandler

十、STM32有几个时钟源

STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。

①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。

②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。

④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

十一、RTOS的任务是怎么写的?如何切出这个任务?

解答:

一个任务,也称作一个线程。

UCOS有一个任务调度机制,根据任务的优先级进行调度。

一个是硬件中断, 那么系统会将当前任务有关变量入栈,然后执行中断服务程序,执行完成后出栈返回.

另一个是任务之间的切换,使用的方法就是任务调度,每一个任务有自己的栈,调度也是一样的入栈,然后执行另一个程序,然后出栈返回。

并非是每一任务按优先级顺序轮流执行的,而是高优先级的任务独占运行,除非其主动放弃执行,否则低优先级任务不能抢占,同时高优先级可以把放出去给低优先级任务使用的CPU占用权抢回来。所以ucos的任务间要注意插入等待延时,以便ucos切出去让低优先级任务执行。

十二、UCOSII中任务间的通信方式有哪几种?

解答:

在UCOSII中,是使用信号量、邮箱(消息邮箱)和消息队列这些被称作事件的中间环节来实现任务间的通信的,还有全局变量。

信号量用于:

1.控制共享资源的使用权(满足互斥条件)
2.标志某时间的发生
3.使2个任务的行为同步

应用实例:互斥信号量

作为互斥条件,信号量初始化为 1。

实现目标:调用串口发送命令,必须等待返回“OK”字符过后,才能发送下一条命令。每个任务都有可能使用到此发送函数,不能出现冲突!

消息队列:

概念:

(1)消息队列实际上就是邮箱阵列

(2)任务和中断都可以将一则消息放入队列中,任务可以从消息队列中获取消息。

(3)先进入队列的消息先传给任务(FIFO)。

(4)每个消息队列有一张等待消息任务的等待列表,如果消息列中没有消息,则等待消息的任务就被挂起,直到消息到来。

应用场景:

串口接收程序中的接收缓冲区。

储存外部事件。

十三、项目使用了自定义协议,是什么结构?

解答:

了解过Modbus协议。

结构为:帧头(SDTC)+帧长度+指令+流水号+数据+CRC校验。

十四、uCOSII和Linux的差异?

解答:

μC/OS-II是专门为计算机的嵌入式应用设计的,μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。

linux 免费,安全,稳定,应用范围广,在嵌入式上,服务器上,家用机,都有广泛应用。

μC/OS-II Linux 都适合用在嵌入式上。但μC/OS-II 是专为嵌入式而设计,这样的结果是,运行效率更高,占用资源更少。

linux 都可以用作服务器上,使用率高。linux 虽然不是专门针对服务器而开发,但其源码公开,完全可以修改,使得两者差异不大,最主要的发行版 redhat linux 就是在服务器上用得很多的系统。

十五、Git提交代码

问题:Git提交代码过程?

解答:

1、显示工作路径下已修改的文件:

$ git status

2、进入修改文件目录:

$cd -

3、显示与上次提交版本文件的不同:

$ git diff
 

4、把当前所有修改添加到下次提交中:

$ git add .
 

5、添加相关功能说明,(第一次提交使用这个)

$ git commit -s
 

其中还要注明:

Fuction: 修改代码的功能

Ticket: 对应Bug号

注意:每一个文件夹下都要重新提一次。

6、查看提交代码

$ tig .
 

7、请勿修改已发布的提交记录! (以后提交使用这个)

$git commit --amend
 

命令模式下:
:x ( 写入文件并退出)

8、推送到服务器

$ git push origin HEAD:refs/for/master
 

十六、ucosii和ucosiii和freeRTOS比较

  • 问题一:三者比较?

解答:

ucosii 和 freeRTOS比较:

(1)freeRTOS只支持TCP/IP, uCOSii则有大量外延支持,比如FS, USB, GUI, CAN等的支持。(我们用于tbox要用到CAN,所以选择uCOSii)

(2)freeRTOS 是在商业上免费应用。uCOSii在商业上的应用是要付钱的。

(3)任务间通讯freeRTOS只支持队列, 信号量, 互斥量。uCOSii除这些外,还支持事件标志组,邮箱。

(4)理论上讲,freeRTOS 可以管理超过64个任务,而uCOSii只能管理64个。

ucosii 和 ucosiii 比较:

那么从μC/OS-II到μC/OS-III有哪些不同的地方呢?增加了什么,我们看改动还是很大的。

一个是原来只有0~63个优先级,而且优先级不能重复,现在允许几个任务使用同一个优先级,在同一个优先级里面,支持时间片调度法;

第二个是允许用户在程序运行中动态配置实时操作系统内核资源,比如,任务、任务栈、信号量、事件标志组、消息队列、消息数、互斥型信号量、存储块划分和定时器,可以在程序运行中变更。这样,用户可以避免在程序编译过程中出现资源不够分配的问题。

在资源复用上,也做了一些改进。μC/OS-II中,最多任务数有64个,到了版本2.82以后是256个,μC/OS-III中,用户可以由任意多的任务、任意多的信号量、互斥型信号量、事件标志、消息列表、定时器和任意分配的存储块容量,仅受限于用户CPU可以使用的RAM量。这个也是一个很大的扩展。

(问:邵老师,它的这个数是启动时就固定的,还是启动后随便定?)它是配置的时候可以自由定义的,只有你的RAM足够大的话。

第四点是增加了很多功能,功能总是越来越多的,大伙可以看一下的。原来这些功能在μC/OS-II里面是没有的。

十七、低功耗模式

  • 问题一:低功耗模式有几种?唤醒方式是什么?

解答:

十八、物联网的架构

  • 问题一:物联网的架构分为几层? 每一层都负责哪些功能?

解答:

分三层,物联网从架构上面可以分为感知层、网络层和应用层

(1)感知层: 负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息。

信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。

感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。

(2)网络层: 是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度昀高、产业化能力昀强、昀成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。

(3)应用层: 提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。

十九、内存管理

  • 问题一:UCOS中内存管理的方法有哪些?

解答:

系统通过与内存分区相关联的内存控制块来对内存分区进行管理。

动态内存管理函数有:

创建动态内存分区函数OSMemCreate();

请求获得内存块函数OSMemGet();

释放内存块函数OSMemPut();

二十、Ucos中任务状态哪几种?任务状态之间的关系图?

解答:

有5种状态:

睡眠状态、就绪状态、运行状态、等待状态(等待某一事件发生)和中断服务状态。

UCOSII 任务的5个状态转换关系:

二十一、ADC

简述STM32的ADC系统的功能特性

(1)12bit分辨率

(2)自动校准

(3)可编程数据对齐(转换结果支持左对齐或右对齐方式存储在16位数据寄存器)

(4)单次和连续转换模式

二十二、系统时钟

  • 简述设置系统时钟的基本流程

(1)打开HSE,等待就绪后,设置Flash等待操作。

(2)设置AHB,APB1,APB2分频系数,确定他们各自和系统时钟的关系。

(3)设置CFGR寄存器确定PLL的时钟来源和倍频系数(HSE外部8M*9倍=72MHz)。

(4)使能PLL,将系统时钟源切换到PLL。

二十三、HardFault_Handler处理

  • 问题一:造成原因

(1)数组越界操作;(2)内存溢出,访问越界;(3)堆栈溢出,程序跑飞;(4)中断处理错误;

  • 问题二:处理方式

(1)在startup_stm32f10x_cl.s里找到 HardFault_Handler 的地址重映射,并重新编写,让其跳转到 HardFaultHandle 函数。

(2)打印查看R0、R1、R2、R3、R12、LR、PC、PSR寄存器。

(3) 查看Fault状态寄存器组(SCB->CFSR和SCB->HFSR)

二十四、TTS语音合成方法

  • 问题一:sim7600 TTS语音使用什么方法

解答:

(1)使用unicode编码合成声音

AT+CTTS=1,”
6B228FCE4F7F75288BED97F3540862107CFB7EDF”

内容是“欢迎使用语音合成系统”,模块收发中文短信就是unicode编码,所以很容易将短信朗读出来;

(2)直接输入文本,普通字符采用ASIIC码,汉字采用GBK编码。

AT+CTTS=2,”欢迎使用语音合成系统”

二十五、定时器

  • 已知STM32的系统时钟为 72MHz,如何设置相关寄存器,实现20ms定时?

解答:

通过SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC))//1ms定时器

其中:

uint32_t SystemCoreClock  = SYSCLK_FREQ_72MHz;        /*!< System Clock Frequency (Core Clock) */#define SYSCLK_FREQ_72MHz  72000000#define OS_TICKS_PER_SEC       1000    /* Set the number of ticks in one second

如果需要20ms则,可以通一设置一个全局变量,然后定初值得为20,这样,每个systick中断一次,这个全局变量减1,减到0,即systick中断20次,时间为:1ms*20=20ms。从而实现 20ms 的定时。

二十六、状态机

  • 问题:使用的什么状态机?

解答:

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机。

假设状态机的状态转换由下表所示:

实现:(使用switch语句)

//横着写void event0func(void){    switch(cur_state)    {        case State0:             action0;             cur_state = State1;            break;         case State1:             action1;             cur_state = State2;            break;         case State2:             action1;             cur_state = State0;            break;        default:break;    }}void event1func(void){    switch(cur_state)    {        case State0:             action4;             cur_state = State1;             break;        default:break;    }}void event2func(void){    switch(cur_state)    {        case State0:             action5;             cur_state = State2;            break;         case State1:             action6;             cur_state = State0;            break;        default:break;    }}
 

二十七、器件选型

STM32F407 VS STM32F103 主要功能及资源对比?

解答:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【推荐】win 安装 rust 1.70

目录 一、下载二、安装先决条件MinGW三、安装Rust四、配置国内镜像五、检查是否安装成功五、参考文章 一、下载 官网地址&#xff1a;https://www.rust-lang.org/zh-CN/ 二、安装先决条件MinGW win 安装 C运行环境 - MinGW 三、安装Rust 3.1首先设置安装路径和环境变量 配…

容器常用操作命令概述

容器镜像就可以说是一个“样板间”&#xff0c;把运行进程所需要的文件系统、依赖库、环境变量、启动参数等所有信息打包整合到了一起。之后镜像文件无论放在哪里&#xff0c;操作系统都能根据这个“样板间”快速重建容器&#xff0c;应用程序看到的就会是一致的运行环境了。 …

EMC学习笔记(十四)射频PCB的EMC设计(一)

射频PCB的EMC设计&#xff08;一&#xff09; 1.板材1.1 普通板材1.2 射频专用板材 2.隔离与屏蔽2.1 隔离2.2 器件布局2.3 敏感电路和强辐射电路2.4 屏蔽材料和方法2.5 屏蔽腔的尺寸 近十年来&#xff0c;移动通信飞速发展&#xff0c;在移动通信设备的设计、测试、安装和操作维…

你有几种实现点击锁定屏慕,输入密码解锁的效果的思路?

文章目录 点击锁定&#xff0c;密码解锁1 需求解析2 思路2.1输入密码时回显2.1.1 利用prompt的输入值来判断 2.2 输入密码时不回显2.2.1实现思路 点击锁定&#xff0c;密码解锁 1 需求解析 点击指定的按钮&#xff0c;当前的屏幕变为空白&#xff0c; 弹出对话框&#xff0c;当…

ChatGPT付费创作系统V2.0.8独立版 +WEB端+ H5端 + 小程序端+新增PC端绘画

ChatGPT付费创作系统V2.0.8提供单独的升级包&#xff0c;升级前先更新至2.0.7版本&#xff0c;再上传升级包替换&#xff0c;同是导入升级包数据库。ChatGPT2.0.8独立版核心功能增加了PC端绘画功能&#xff0c;绘画功能采用其他绘画接口-意间AI&#xff0c;后台一些小细节的优化…

电脑c盘哪些文件可以删除?这4种文件可以删!

我的电脑使用了快两年了&#xff0c;现在经常很卡顿&#xff0c;不知道是不是因为电脑c盘空间快满了导致的。电脑c盘哪些文件可以删除呢&#xff1f;请大家帮我看看&#xff01; 电脑的c盘一般会存储很多的临时文件和系统的文件。然而这些文件并不是都有用的。有些文件我们可以…

[golang 微服务] 9.go-micro + gorm实现商品微服务的分页查询

一.引入 上一节讲解 go-micro的负载均衡操作&#xff0c;go Web框(Gin,Beego)调用go-micro微服务等技术&#xff0c;这一节来看看 go-micro gorm实现 商品微服务的 分页查询操作,go-micro微服务中使用GORM和go web框架gin、beego中使用 GORM都是一样的 二.创建goodsinfo服务端…

git学习使用技巧

目录 关于版本控制 本地版本控制系统 集中化的版本控制系统 分布式版本控制系统 Git 是什么 直接记录快照&#xff0c;而非差异比较 近乎所有操作都是本地执行 Git 保证完整性 Git 一般只添加数据 三种状态 起步 - 初次运行 Git 前的配置 初次运行 Git 前的配置 用户…

2023年7月1日【青书学堂】考试 统计学(高起专)

2023年7月1日【青书学堂】考试 统计学(高起专) 注意:答案仅供参考 成绩:84.34 分 第1题 单选题 下列哪两个变量之间的相关程度高 ( ) A: 商品销售额和商品销售量的相关系数是0.9 B: 商品销售额与商业利润率的相关系数是0.84 C: 平均流通费用率与商业利润率的相关系数是-0…

ACL2023 | Multi-CLS BERT:传统集成的有效替代方案

进NLP群—>加入NLP交流群 在本文中&#xff0c;介绍了 Multi-CLS BERT&#xff0c;这是传统集成方法的有效替代方案。 这种基于 CLS 的预测任务的新颖方法旨在提高准确性&#xff0c;同时最大限度地减少计算和内存需求。 通过利用具有不同参数化和目标的多个 CLS token&…

数据结构-查找

数据结构-查找 1 知识框架2 顺序查找和折半查找2.1 顺序查找2.2折半查找2.3 分块查找 3 树型查找3.1 二叉排序树3.2 平衡二叉树3.3 B树和B树3.3.1 B树3.3.2 B树 4 散列表4.1 构造方法4.2 处理冲突的办法4.3性能分析 1 知识框架 2 顺序查找和折半查找 2.1 顺序查找 1.一般线性…

vue 基础入门

目录 vue 简介 vue 的特性 数据驱动视图 双向数据绑定 MVVM vue 的基本使用 vue 的调试工具 vue 的指令 1、内容渲染指令 2、属性绑定指令 3、事件绑定 4、双向绑定指令 v-model 5、 条件渲染指令 6 、列表渲染指令 vue过滤器 定义过滤器基本使用 私有过滤器和全…

web安全php基础_phpstudy pro安装

phpstudy pro是什么 phpstudy是一个php运行环境的集成包&#xff0c;用户不需要去配置运行环境&#xff0c;就可以使用&#xff0c;phpstudy不仅是一款比较好用的php调试环境工具&#xff0c;并且还包括了开发工具和常用手册&#xff0c;对于新手是有很大帮助的 windows下ph…

基于LLAMA-7B的lora中文指令微调

目录 1. 选用工程2. 中文llama-7b预训练模型下载3. 数据准备4. 开始指令微调5. 模型测试 前言&#xff1a; 系统&#xff1a;ubuntu18.04显卡&#xff1a;GTX3090 - 24G &#xff08;惨呀&#xff0c;上次还是A100&#xff0c;现在只有3090了~&#xff09; &#xff08;本文旨在…

I.MX RT1170之FlexSPI(3):NOR Flash手册分析和参数配置详解

在上一节中&#xff0c;我们分析了FlexSPI的相关参数&#xff1a;LUT表格的组成和FlexSPI结构体配置&#xff0c;这一节就以WINBOND的W25Q256JV NOR Flash为例&#xff0c;看一下如何根据这个NOR Flash的数据手册配置FlexSPI接口。 文章目录 1 SDK代码2 NOR Flash配置流程2.1 时…

java.lang.IllegalArgumentException: 找到多个名为spring_web的片段。这是不合法的相对排序。

问题 java.lang.IllegalArgumentException: 找到多个名为spring_web的片段。这是不合法的相对排序。 详细问题 笔者使用ServletJSP技术框架进行项目开发&#xff0c;对于项目进行国际化&#xff08;即i18n&#xff0c;实现中英文页面转换&#xff09;&#xff0c;需要引入 下…

【C语言初阶(9)】函数2

文章目录 1. 函数的嵌套调用和链式访问1.1 嵌套调用1.2 链式访问 2. 函数的声明和定义2.1 函数定义2.2 函数声明2.3 函数的实际应用 3. 函数递归3.1 什么是递归&#xff1f;3.2 递归使用条件3.3 递归的案例3.4 递归的优缺点 4. 递归练习题 1. 函数的嵌套调用和链式访问 函数和函…

悟道·天鹰 Aquila + 天秤 FlagEval,打造大模型能力与评测标准双标杆

为推动大模型在产业落地和技术创新&#xff0c;智源研究院发布“开源商用许可语言大模型系列开放评测平台” 2 大重磅成果&#xff0c;打造“大模型进化流水线”&#xff0c;持续迭代、持续开源开放。 开源商用许可语言大模型系列 悟道天鹰&#xff08;Aquila&#xff09; 语…

教师资格证考试(高中数学)-考什么

目录 考什么 及格线 科一-综合素质 ​编辑 科二-教育知识与能力 科三-学科知识与教学能力(数学) 题型 考什么 及格线 大家要明确3个分数&#xff1a; ✅卷面分数&#xff1a;满分为150分&#xff0c;也就是大家平时拿到的试卷及真题卷面分数。 ✅报告分数&#xff1a;…

React 之 组件化开发

本文主讲解类组件&#xff0c;函数组件会在后续文章中学习 一、组件化开发 1. 概念 组件化是一种分而治之的思想&#xff1a; 如果将一个页面中所有的处理逻辑放在一起&#xff0c;处理起来会变得非常复杂&#xff0c;不利于后续的管理以及扩展 但如果讲一个页面拆分成一个个小…