单片机_day3_GPIO
目录
1. 灯如何才能亮
1.1原理图
1.2 二极管
1.3 换了一个灯和原理图
编辑
1.4 三极管
1.4.1 NPN型三极管
1.4.2 PNP型三极管
2. 基本概念
3. 输入
3.1 浮空输入
3.2 上拉输入
3.3 下拉输入
3.4 模拟输入
4. 输出
4.1 推挽输出
4.2 开漏输出
如何让开漏输出高电平?
5. 相关寄存器
5.1 寄存器定义与作用
5.2 控制某一引脚输出电压来点灯所需要控制的寄存器
5.3 配置时钟使能寄存器
5.4 GPIO配置寄存器
5.4.1 端口模式寄存器
5.4.2 输出类型寄存器
5.4.3 输出速度寄存器
5.4.4 上下拉寄存器
5.4.5 输入数据寄存器
5.4.6 输出数据寄存器
5.5 让PC13引脚输出高电平
5.6 寻找寄存器地址--定位
6. 开始点灯
6.1 C语言点灯
位操作
6.2 新建项目
6.2.1 引脚配置
6.2.1 生成项目
6.2.4 代码分析
6.2.5 库函数分析
6.2.6 闪灯实验
7. 底板与拓展板
7.1 底板
7.2 显示屏与资源拓展板
7.2.1 显示屏
7.2.2 资源拓展板
8. 原理图
8.1 LD1这个灯连到了哪个引脚?
9. 按键
按键消抖
9.1.1 延时消抖
9.1.2 抬手检测
10. 光电开关(任务分析)
10.1 原理
10.2光电开关控制风扇
注意:单片机部分笔记的学习主要围绕STM32U575RIT系列芯片和华清远见学习开发板展开。
开发板软件安装包和原理图等资料连接:
通过网盘分享的文件:单片机
链接: https://pan.baidu.com/s/1gE3Mnl_MF0q667iqQ51IuA?pwd=mv5s 提取码: mv5s
1. 灯如何才能亮
1.1原理图
灯亮需要电流,产生电流需要电势差
单片机的电源3.3V —— + LED - —— 1.0V(单片机上比3.3V低的接口)
1.2 二极管
二极管就是由一个PN结加上相应的电极引线及管壳封装而成的
特点:正向导通,反向截止
记忆:将此符号看作一个箭头,顺着箭头的方向,电压降低才导通(压差最小为0.7v),否则相当于电阻无穷大。
有一种二极管在其导通时可以发光,这种二极管叫做发光二极管(Light Emitting Diode)
我们常说的LED,就是二极管。
1.3 换了一个灯和原理图
1.4 三极管
三极管有两种类型,PNP和NPN型。
1.4.1 NPN型三极管
基极高电平导通
1.4.2 PNP型三极管
基极低电平导通
D1灯亮,需要二极管左端为低电平
三极管导通,GND和D1左端导通,即D1左端拿到低电平,灯亮。
此三极管为NPN型三极管,当PC13为高电平时,三极管导通。
即PC13输出高电平,D1灯亮。
不难看出,此处三极管相当于一个简易的开关。
2. 基本概念
GPIO(General-purpose input/output)通用输入输出接口
--GP 通用
--I input 输入
--O output输出
GPIO,General Purpose Input Output,指的是芯片的通用输入输出引脚。
通过配置对应引脚的输出模式,我们可以进行LED灯的点亮,继电器的开闭控制;
在输入模式下,读取按键开关的状态,模拟输入状态下,我们可以读取温湿度传感器的数据。
除了以上使用情况,也可以作为I2C,SPI,串口的引脚等。
问:VDD、VSS、VCC分别表示什么意思?
VCC:C=circuit,表示电路的意思,即接入电路的电压。
VDD:D=device,表示器件的意思,即器件内部的工作电压。
VSS:S=series,表示公共连接的意思,通常指电路公共接地端电压。
VCC :接入电路的电压 外部参考高电平3.3,
VDD : 元器件内部的工作电压,内部参考高电压,stm32中为3.3v
VSS : 公共接地端电压,内部参考地,stm32中为0v
施密特触发器:整形
3. 输入
3.1 浮空输入
上下拉都关闭
好处:其电平完全由外部决定
不好:当引脚没有外接电路的时候,其电平信号是不确定的,不确定的信号会影响程序的正常判断
3.2 上拉输入
打开上拉,关闭下拉
好处:提供了一个默认电平,当外部电路不确定的时候,提供了一个默认的高电平。
当外部输入低电平时,输入的还是低电平
当外部输入高电平时,输入的是高电平
3.3 下拉输入
打开下拉,关闭上拉
好处:提供了一个默认电平,当外部电路不确定的时候,提供了一个默认的低电平。
当外部输入低电平时,输入的还是低电平
当外部输入高电平时,输入的是高电平
3.4 模拟输入
4. 输出
4.1 推挽输出
P-MOS、N-MOS都能用
输出高电平
在输出数据寄存器对应引脚位置写1--->数据选择器选择上路--->输出控制器给P-MOS和N-MOS都输出高电平--->P-MOS导通,N-MOS截止--->高电平由Vdd提供
输出低电平
在输出数据寄存器对应引脚位置写0--->数据选择器选择上路--->输出控制器给P-MOS和N-MOS都输出低电平--->N-MOS导通,P-MOS截止--->低电平由Vss提供
4.2 开漏输出
P-MOS关闭
输出低电平
在输出数据寄存器对应引脚位置写0--->数据选择器选择上路--->输出控制器给P-MOS和N-MOS都输出低电平--->N-MOS导通,P-MOS截止--->低电平由Vss提供
本身无法输出高电平
在输出数据寄存器对应引脚位置写1--->数据选择器选择上路--->输出控制器给P-MOS和N-MOS都输出高电平--->P-MOS关闭,N-MOS关闭--->电路处于高阻态
由上可得:开漏本身无法输出高电平
如何让开漏输出高电平?
1. 打开内部上拉电阻
2. 外接上拉电阻
好处:提供的电压由用户决定,想提供高电压,把外界上拉电阻的电压源提高即可。
5. 相关寄存器
5.1 寄存器定义与作用
为什么要学习寄存器,寄存器的作用是什么?
答:
- 寄存器是单片机内部的一些存储单元
- 单片机的设置和寄存器直接关联,比如输出模式,比如输入输出的电压,比如上下拉电阻是否打开,所以,想要对单片机进行设置就是对寄存器进行改写的过程。
5.2 控制某一引脚输出电压来点灯所需要控制的寄存器
- 时钟开关,总开关
- 端口模式寄存器--输出模式
- 输出类型寄存器--推挽
- 输出速度寄存器--非常慢
- 上下拉寄存器 --既不上拉也不下拉
- 输出数据寄存器 --1
5.3 配置时钟使能寄存器
思路:
我们的目的是使用PC13,所以要先打开C引脚组时钟。
通过寻找内存架构找到了RCC相关的寄存器组,RCC寄存器组里的寄存器太多了。
找到控制引脚组的RCC寄存器需要找到GPIO属于哪个总线上的(AHB1\APB1\APB2\PHB2等),通过查内存分配架构图可知,GPIO在AHB2总线上,所以,我们定位到了RCC_AHB2ENR1
RCC AHB2 peripheral clock enable register 1 (RCC_AHB2ENR1)
打开C组,就可以使用PC13
RCC_AHB2ENR1第2位写1
5.4 GPIO配置寄存器
5.4.1 端口模式寄存器
GPIO port mode register (GPIOx_MODER) (x = A to J)
PC13为输出模式
GPIOC_MODER第27、26位写0,1
5.4.2 输出类型寄存器
GPIO port output type register (GPIOx_OTYPER) (x = A to J)
PC13推挽模式
GPIOC_OTYPER 第13位写0
5.4.3 输出速度寄存器
GPIO port output speed register (GPIOx_OSPEEDR) (x = A to J)
PC13低速输出
GPIOC_OSPEEDR 第27、26位写 0 0
5.4.4 上下拉寄存器
GPIO port pull-up/pull-down register (GPIOx_PUPDR) (x = A to J)
PC13都不拉
GPIOC_PUPDR 第27、26位写 0 0
5.4.5 输入数据寄存器
GPIO port input data register (GPIOx_IDR) (x = A to J)
5.4.6 输出数据寄存器
GPIO port output data register (GPIOx_ODR) (x = A to J)
PC13输出高电平
让GPIOC_ODR第13位写1
5.5 让PC13引脚输出高电平
- 打开时钟:RCC_AHB2ENR1 给第2位写1
- 配置端口模式寄存器 配置为输出模式 GPIOC_MODER 第27、26位写 0 1
- 配置输出类型寄存器 配置为推挽输出 GPIOC_OTYPER 第13位写0
- 配置输出速度数据寄存器 配置为很低 GPIOC_OSPEEDR 第 27、26位写 0 0
- 配置上下拉寄存器 配置为既不用上拉也不下拉 GPIOC_PUPDR 第27、26位写0 0
- 配置输出数据寄存器 给PC13引脚写1 GPIOC_ODR 第13位写1
5.6 寻找寄存器地址--定位
0x56020C00是RCC寄存器组的基地址
偏移地址,相对于基地址--RCC寄存器组的起始地址
RCC_AHB2ENR1地址为:0x56020C00+0x08C=0X56020C8C
GPIOC寄存器组的基地址为0x5202 0800
GPIOC_MODER : 0x5202 0800+0X00=0x5202 0800
GPIOC_OTYPER : 0x5202 0800+0X04=0x5202 0804
GPIOC_OSPEEDR : 0x5202 0800+0X08=0x5202 0808
GPIOC_PUPDR :0x5202 0800+0X0C=0x5202 080C
GPIOc_ODR :0x5202 0800+0X14=0x5202 0814
6. 开始点灯
6.1 C语言点灯
void SystemInit(void)
{*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));}
int main(void)
{}
记得使用微型C库,不勾的话可能会影响效果
如果报了两个未知错误,可尝试调整优化
烧录前一定将烧写器调成STLINK
位操作
精准置1
x|1=1;
x|0=x;
故将不希望改变的位和0相或,将希望置1的位和1相或即可。
使第26位置1,可通过让整个寄存器和1<<26相或再赋值得到,寄存器 |= (1<<26)
精准置1
x|1=1;
x|0=x;
故将不希望改变的位和0相或,将希望置1的位和1相或即可。
使第26位置1,可通过让整个寄存器和1<<26相或再赋值得到,寄存器 |= (1<<
void SystemInit(void)
{*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));}
int main(void)
{
//RCC_AHB2ENR1地址为:0x56020C00+0x08C=0X56020C8C
//GPIOC_MODER : 0x5202 0800+0X00=0x5202 0800
//GPIOC_OTYPER : 0x5202 0800+0X04=0x5202 0804
//GPIOC_OSPEEDR : 0x5202 0800+0X08=0x5202 0808
//GPIOC_PUPDR :0x5202 0800+0X0C=0x5202 080C
//GPIOc_ODR :0x5202 0800+0X14=0x5202 0814*(unsigned int *)0X56020C8C |= (1<<2);*(unsigned int *)0x52020800 |= (1<<26);*(unsigned int *)0x52020800 &= ~(1<<27);*(unsigned int *)0x52020804 &= ~(1<<13);*(unsigned int *)0x52020808 &= ~(3<<26);*(unsigned int *)0x5202080C &= ~(3<<26);*(unsigned int *)0x52020814 |= (1<<13); while(1);
}
void SystemInit(void)
{*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));}
void delay(int T);typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int SPEED;unsigned int PUPDR;unsigned int IDR; unsigned int ODR;
}GPIO;#define GPIOC (*(GPIO *)0x52020800)
#define RCC_AHB2ENR1 *(unsigned int *)0x56020C8Cint main(void)
{RCC_AHB2ENR1 |= 1<<2;//配置RCC_AHB2ENR1的第2位置1,打开时钟GPIOC.MODER |= 1<<26;//GPIOC_MODER 的第26位置1,配置输出GPIOC.MODER &= ~(1<<27);//GPIOC_MODER 的第27位置0,配置输出GPIOC.OTYPER &= ~(1<<13);//GPIOC_OTYPER 的第13位置0,配置推挽GPIOC.SPEED &= ~(3<<26);//GPIOC_OSPPEDR 第27、26位置0GPIOC.PUPDR &= ~(3<<26);//GPIOC_PUPDR 第27、26位置0GPIOC.ODR |= 1<<13;//GPIOC_ODR 第13位置1while(1){GPIOC.ODR |= 1<<13;//GPIOC_ODR 第13位置1delay(1000);GPIOC.ODR &= ~(1<<13);//GPIOC_ODR 第13位置0 delay(1000); }
}void delay(int T)
{int a,b;for(a=0;a<T;a++)for(b=0;b<100;b++);
}
6.2 库函数点灯
6.2 新建项目
6.2.1 引脚配置
打开烧录口
6.2.1 生成项目
6.2.4 代码分析
双击main.c文件,找到,我们可以查看MX_GPIO_Init();的内容以了解CubeMX帮我们生成了的初始化内容,选中MX_GPIO_Init();后按下F12或鼠标右键,选择Go To Definition of...。
6.2.5 库函数分析
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
功能: 设置或清除指定的端口位
参数:GPIO_TypeDef *GPIOx 端口号uint16_t GPIO_Pin 引脚号GPIO_PinState PinState 电平状态GPIO_PIN_SET 1 GPIO_PIN_RESET 0
返回值:无void HAL_GPIO_TogglePin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)
功能: 切换指定的引脚电平状态
参数:GPIO_TypeDef * GPIOx 端口号uint16_t GPIO_Pin 引脚号
返回值:无GPIO_PinState HAL_GPIO_ReadPin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)
功能: 读取指定的引脚电平状态
参数:GPIO_TypeDef * GPIOx 端口号uint16_t GPIO_Pin 引脚号
返回值:GPIO_PinState 电平状态GPIO_PIN_RESET 0GPIO_PIN_SET 1HAL_Delay()单位毫秒
点灯
6.2.6 闪灯实验
7. 底板与拓展板
7.1 底板
STM32 开发板底板,支持 5V 电源适配器与 TypeC 供电。
提供 RTC 时钟电源,提供三轴加速度与角速度传感器,用于姿态感知。
板载 ESP-12F 无线模组,用于物联网云平台项目开发。
提供 1 路五向按键,采用中断与 A/D 模式采样。
提供 1 路有源蜂鸣器,1 路 2*17P 扩展接口,用于资源扩展板的接入。
核心板接口通过 2.54mm 间距的插针引出,方便用户外接其它设备
7.2 显示屏与资源拓展板
7.2.1 显示屏
电容触摸显示屏在很多智能设备上得到应用,提升了设备的交互感。
在开发板套件中使用方型显示屏用来模拟圆形的一个手表项目。显示屏尺寸为 2.8寸,分辨率 320*240(RGB)。
驱动 IC采用 ILI9341,自带 172,800 字节的 GRAM 存储。电容触摸屏采用 I2C 接口,驱动 IC 采用 FT6336G。
7.2.2 资源拓展板
资源扩展板提供基于 I2C 总线的温湿度传感器、环境光感知、心率/脉搏测量。基于模数转换接口的电压/电流采集。
基于 EXTI 事件/中断控制类型的人体红外、光电开关、火焰感知传感器。
基于 SPI 总线的数码管驱动电路。
基于 PWM 控制的风扇、蜂鸣器、震动马达。
基于 GPIO 的按键、LED 指示灯。
基于异步串行通信的 485 总线电平转换。基于控制器局域网总线的 CAN 电平转换等外设。
资源扩展板主要用于微控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发学习。
8. 原理图
8.1 LD1这个灯连到了哪个引脚?
1. 先找到想要点的灯是谁,确定丝印为LD1
2. 打开拓展原理图,根据丝印LD1找到等的所在处,LED1线控制着LD1灯的亮灭
LED1为高电平灯亮,反之,灯灭
LED1肯定连到了芯片引脚上,顺线继续找LED1
3. LED1想要连到芯片引脚,必走如图所在处,其丝印为J1(空间有限,板子上并未标注)
4. 打开拓展板原理图J1所在处,能够找到老熟人,LED1,其位于J1的4号口
5. 拓展板通过J1连到了底板的J6口
6. 打开底板原理图找J6的4号口,就找到了LED1的连接处
7. 底板通过地板上的槽J1和J2连到了核心板,所以,LED1想连到芯片上肯定会走这个槽,所以去底板上找这个槽有没有叫LED1的,槽是J1和J2
8. 在J2的15号口又看到了老熟人LED1,为了方便,这里直接标注上了最后连到核心板的PC14上了
在J2的15号口又看到了老熟人LED1,为了方便,这里直接标注上了最后连到核心板的PC14上了
9. 结论:PC4最终连到了LED1,所以,控制PC4的电平高低就可以实现对灯的控制了,至此,此次原理图线路追踪结束,并得出结论
PC4高电平LD1灯亮,反之灯灭
作业:驱动风扇、蜂鸣器、马达隔一段时间切换一次状态
将演示视频发群里
依次方法可知:风扇连到了PC6引脚,高电平驱动
马达连到了PC7引脚,高电平驱动
底板蜂鸣器连到了PA15引脚,高电平驱动
9. 按键
当按键未按下,PC9为高电平
当按键被按下,PC9为低电平
所以,检测PC9是否为低电平就可以直到PC9是否按下了
按键消抖
抖动原因:
任何的机械按键都会有抖动,而且人手按下抬起并不是一瞬间的,人抬手是需要反应时间的,所以会导致按下的低电平时间过长,导致多次误进if判断语句,所以会多次切换状态,导致误判。
9.1.1 延时消抖
此处建议观看录课中的延时消抖讲解
9.1.2 抬手检测
检测到抬手动作后再进行灯的电平翻转
10. 光电开关(任务分析)
10.1 原理
遮挡-->PE15输出高电平--->PB2输入高电平
无遮挡-->PE15输出低电平--->PB2输入低电平
10.2光电开关控制风扇
num测试
]使用调试查看变量内容
最终实现代码
相关文章:

单片机_day3_GPIO
目录 1. 灯如何才能亮 1.1原理图 1.2 二极管 1.3 换了一个灯和原理图 编辑 1.4 三极管 1.4.1 NPN型三极管 1.4.2 PNP型三极管 2. 基本概念 3. 输入 3.1 浮空输入 3.2 上拉输入 3.3 下拉输入 3.4 模拟输入 4. 输出 4.1 推挽输出 4.2 开漏输出 如何让开漏输出…...

Python小游戏24——小恐龙躲避游戏
首先,你需要安装Pygame库。如果你还没有安装,可以通过以下命令安装: 【bash】 pip install pygame 【python】代码 import pygame import random # 初始化Pygame pygame.init() # 设置屏幕尺寸 screen_width 800 screen_height 600 screen …...

Python 的多态笔记
Python的多态实际是通过instance 实现的 class Person:def __init__(self, name,age):self.name nameself.age agedef feed_pet(self,pet):#isinastance(obj,类)-->判断obj,是不是这个类的对象,或者判断obj是不是该类的子类的对象if isinstance(pet, Pet):sel…...

go module使用
go module介绍 go module是go官⽅⾃带的go依赖管理库,在1.13版本正式推荐使⽤ go module可以将某个项⽬(⽂件夹)下的所有依赖整理成⼀个 go.mod ⽂件,⾥⾯写⼊了依赖的版本等 使⽤ go module之后我们可不⽤将代码放置在src下了 使⽤ go module 管理依赖后会在项⽬根⽬录下⽣成…...

c ++零基础可视化——数组
c 零基础可视化 数组 一些知识: 关于给数组赋值,一个函数为memset,其在cplusplus.com中的描述如下: void * memset ( void * ptr, int value, size_t num );Sets the first num bytes of the block of memory pointed by ptr to…...

CVE-2024-2961漏洞的简单学习
简单介绍 PHP利用glibc iconv()中的一个缓冲区溢出漏洞,实现将文件读取提升为任意命令执行漏洞 在php读取文件的时候可以使用 php://filter伪协议利用 iconv 函数, 从而可以利用该漏洞进行 RCE 漏洞的利用场景 PHP的所有标准文件读取操作都受到了影响࿱…...

计算机组成原理笔记----基础篇
计算机系统硬件软件 软件 ├── 系统软件 │ ├── 操作系统 │ └── 工具软件 └── 应用软件├── 办公软件├── 媒体软件└── 浏览器软件硬件 ├── 计算机硬件 │ ├── 中央处理器(CPU) │ ├── 存储设备 │ │ ├── …...

TheadLocal出现的内存泄漏具体泄漏的是什么?弱引用在里面有什么作用?什么情景什么问题?
首先ThreadLocal是什么就不介绍了!这篇是讲讲里面的东西。 再简单说一下强引用和弱引用,举个例子,我们平常new出来的对象就是强引用的,在栈中有强引用,所以在gc的时候,堆中的实例对象不会被清除掉。 弱引…...

AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型
1. 引言 AI技术在电商平台的应用已不仅仅停留在基础的数据分析和自动化推荐上。随着人工智能的迅速发展,越来越多的电商平台开始将AI技术深度融合到用户体验、定价策略、供应链优化、客户服务等核心业务中,从而显著提升运营效率和用户满意度。在这篇文章…...

CTF-RE 从0到N:RC4
RC4加密算法简介 RC4是由Ron Rivest于1987年设计的一种流加密算法。它通过伪随机数生成器生成密钥流,并将该密钥流与明文进行异或运算来完成加密和解密。 RC4的加密流程 RC4主要包含两个阶段: 密钥调度算法 (Key Scheduling Algorithm, KSA)ÿ…...

HbuilderX 插件开发-模板创建
实现思路 使用HbuilderX 打开某个文档时右键点击的时候获取当前打开的文档内容使用 API 替换为自己的模板 示例 package.json {"id": "SL-HbuilderX-Tool","name": "SL-HbuilderX-Tool","description": "快速创建h…...

打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问
文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…...

YOLO-SLD: An Attention Mechanism-ImprovedYOLO for License Plate Detection
摘要 车辆牌照检测在智能交通系统中发挥着关键作用。检测汽车、卡车和面包车等的牌照对于执法、监控和收费站操作非常有用。如何快速准确地检测牌照对牌照识别至关重要。然而,在现实世界复杂捕捉场景中,光照条件不均匀或牌照拍摄角度的倾斜会发生剧烈变…...

ArcGIS的汉字(亚洲文本)垂直标注
01 需求说明 实现ArcGIS的汉字(亚洲文本的垂直标注)。 启用 Maplex 标注引擎。 在标注 工具条上单击标注管理器按钮 。 选中要进行标注的图层旁边的复选框。 选择图层下方的标注分类。 单击符号。 选中 CJK 字符方向复选框。 仅当字体有垂直的文本度…...

【面试题】
1.UART 和 IIC 的区别 UART (Universal Asynchronous Receiver-Transmitter) 用途:用于异步串行通信。信号线:通常需要两根线(TX 和 RX),有时还需一根地线。通信方式:点对点。数据传输:单向或…...

Leetcode 寻找峰值
为了实现时间复杂度为 O ( log n ) O(\log n) O(logn),可以使用二分查找法: 解题思路: 峰值的特性是:当前元素大于左右相邻元素。使用二分法: 如果 nums[mid] > nums[mid 1],说明峰值在左侧或当前…...

探索大规模语言模型(LLM)在心理健康护理领域中的应用与潜力
概述 心理健康是公共卫生最重要的领域之一。根据美国国家精神卫生研究所(NIMH)的数据,到 2021 年,22.8% 的美国成年人将患上某种形式的精神疾病。在全球范围内,精神疾病占非致命性疾病负担的 30%,并被世界…...

Infisical开源密钥管理平台实战指南
1. 引言 在现代软件开发中,安全地管理环境变量和敏感信息已成为一个关键挑战。Infisical作为一个开源的密钥管理平台,为这一问题提供了强大而灵活的解决方案。本指南将深入探讨Infisical的功能,并通过实际操作步骤,帮助读者全面了解和使用这个工具。 2. Infisical概述 I…...

AI大模型:重塑软件开发流程与模式
人工智能技术的飞速发展,尤其是AI大模型的兴起,正以前所未有的速度和深度影响着各行各业,其中软件开发领域尤为显著。AI大模型,如GPT系列、BERT、Claude等通过其强大的自然语言处理能力、代码理解和生成能力,正在从根本…...

AMD(Xilinx) FPGA配置Flash大小选择
目录 1 FPGA配置Flash大小的决定因素2 为什么选择的Flash容量大小为最小保证能够完成整个FPGA的配置呢? 1 FPGA配置Flash大小的决定因素 在进行FPGA硬件设计时,选择合适的配置Flash是我们进行硬件设计必须考虑的,那么配置Flash大小的选择由什…...

基于Java Springboot图书借阅系统
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…...

DDRPHY数字IC后端设计实现系列专题之数字后端floorplanpowerplan设计
3.2.3 特殊单元的布局 布图阶段除了布置 I/O 单元和宏单元,在 28nm 制程工艺时,还需要处理两种特 殊的物理单元,Endcap 和 Tapcell。 DDRPHY数字IC后端设计实现系列专题之后端设计导入,IO Ring设计 (1)拐…...

【Mysql】Mysql函数(上)
1、概述 在Mysql中,为了提高代码重用性和隐藏实现细节,Mysql提供了很多函数。函数可以理解为封装好的模块代码。 2、分类 在Mysql中,函数非常多,主要可以分为以下几类: (1)聚合函数 …...

Java连接MySQL(测试build path功能)
Java连接MySQL(测试build path功能) 实验说明下载MySQL的驱动jar包连接测试的Java代码 实验说明 要测试该情况,需要先安装好MySQL的环境,其实也可以通过测试最后提示的输出来判断build path是否成功,因为如果不成功会直…...

卡尔曼滤波器
卡尔曼滤波器概述 卡尔曼滤波器(Kalman Filter)是一种递归的最优估计方法,广泛应用于信号处理、控制理论、导航定位等领域。它基于线性动态系统模型,通过观测数据不断更新系统的状态估计,从而使得估计值能够在噪声干扰…...

基于BERT的情感分析
基于BERT的情感分析 1. 项目背景 情感分析(Sentiment Analysis)是自然语言处理的重要应用之一,用于判断文本的情感倾向,如正面、负面或中性。随着深度学习的发展,预训练语言模型如BERT在各种自然语言处理任务中取得了…...

推荐15个2024最新精选wordpress模板
以下是推荐的15个2024年最新精选WordPress模板,轻量级且SEO优化良好,适合需要高性能网站的用户。中文wordpress模板适合搭建企业官网使用。英文wordpress模板,适合B2C网站搭建,功能强大且兼容性好,是许多专业外贸网站的…...

AWTK-WIDGET-WEB-VIEW 实现笔记 (2) - Windows
在 Windows 平台上的实现,相对比较顺利,将一个窗口嵌入到另外一个窗口是比较容易的事情。 1. 创建窗口 这里有点需要注意: 父窗口的大小变化时,子窗口也要跟着变化,否则 webview 显示不出来。创建时窗口的大小先设置…...

Linux四剑客及正则表达式
正则表达式 基础正则(使用四剑客命令时无需加任何参数即可使用) ^ # 匹配以某一内容开头 如:^grep匹配所有以grep开头的行。 $ # 匹配以某一内容结尾 如:grep$ 匹配所有以grep结尾的行。 ^$ # 匹配空行。 . # 匹配…...

ALS 推荐算法案例演示(python)
数学知识补充:矩阵 总结来说: Am*k X Bk*n Cm*n ----至于乘法的规则,是数学问题, 知道可以乘即可,不需要我们自己计算 反过来 Cm*n Am*k X Bk*n ----至于矩阵如何拆分/如何分解,是数学问题,知道可以拆/可以分解即可 ALS 推荐算法案例:电影推…...