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

嵌入式软件--stm32 DAY 2

大家学习嵌入式的时候,多多学习用KEIL写代码,虽然作为编译器,大家常用vscode等常用工具关联编码,但目前keil仍然是主流工具之一,学习掌握十分必要。

1.再次创建项目

1.1编译器自动生成文件

1.2初始文件

这样下次创建新项目时,只需复制上一个项目,删除自动生成的文件,后根据自我需求进行修改。

重新打开工程后,需要重新配置,重新配置后才会生成文件。

2.再做项目

2.1需求

在第一个项目中,我们点亮了黄灯。接下来点亮蓝灯和绿灯。

2.2准备工作

2.2.1原理图查接线

 

由原理图可知,LED负极端给一个低电平就可以点亮。得出有效条件:低电平有效

2.2.2有效信息写代码

我们知道,所有外设都基本挂在系统总线上,APB1  APB2.从总线上找GPIO

他们都属于GPIOA同一组时钟。

配置PA1为输出,看寄存器CRL.PA0是后面的四位,那PA1就是前面的四位。

通用推挽输出的配置通常需要将 CNF 设置为 00(推挽输出),而 MODE 根据所需的速度选择,比如 2MHz、10MHz 或 50MHz。例如,对于 50MHz 的速度,MODE 位应设置为 11。因此,对应的 CRL 位需要设置为 0011,即十进制的 3,也就是0x 30

最后几位应该是1101,对应16进制D。所以0xfffd。

蓝灯就会亮起。黄灯之所以不亮是因为如果没有延迟,是观察不到的,它的程序反应速度很快。

绿灯对应引脚PA8。因为8-15的引脚不在低寄存器里,需要看高寄存器。也就是CRH的最低四位

基地址+偏移地址。*(uint32 *)(0x4001 0800+0x04)=0x03

输出低电平,偏移量0x0c.给ODR8一个0.也就是0xfeff.

这样绿灯就会亮起。

看到这里,也就明白了,让三灯同时亮起。

也就是ODR端口数据寄存器配置为0xfefc。

端口配置寄存器CRL,就让低8位为00110011,其他全是0,也就是0x33.

这就是电灯案例的标准库寄存器写法,但是不是有些难看?

寄存器写法的步骤也无非就是开启GPIO时钟,配置端口寄存器输入输出,配置输入输出数据。

先找到引脚的起始地址,再找寄存器对应偏移量,加一起就可以找到寄存器操作地址,还需要强转成32位指针。可不可以不需要这些地址?

我们可以选择优化!

2.3代码优化

不知道大家发现没,我们并没有用到Start里面的.h文件。并没有引入各种额外文件。

如果简化的话,就需要引入额外文件。将一些地址加以宏定义,就会好看许多。

2.3.1 改进1 使用宏定义改写寄存器地址

引入文件

时钟配置也可以

RCC->APB2ENR=4;

注意stm32f10x.h文件里面集成了很多寄存器和引脚的宏定义。只有引用他才能宏替换地址。

优点:这样比地址好看很多,只要记住模块名和寄存器名称,就能配置。

但是目前缺陷也很明显。例如RCC->APB2ENR=4,不仅打开了GPIOA时钟,也将其他的模块关闭了。我们应该在不影响其他模块的前提下,打开GPIOA时钟。

C语言里面讲过位运算,只改想要的位,不改其他位。

2.3.2 使用位运算对某一位进行操作

跟0作位于,一定为0;跟1作位或,一定为1;

置0,与0位于,置一,与1位或.

2.3.3 改进2 使用位运算实现只改变某一位的值。

RCC->APB2ENR=4  4即0x0100,只要让第三位为1,其他保持不变。那就只要和一个第三位为1,其他为0的数作位或即可。也就是与(1<<2)做位或。

RCC->APB2ENR|=(1<<2)即可。

配置PA0为输出,GPIOA->CRL=0x03; 0011,cnF0=00,mode=11,前两位为0,后两位是1,其他位不受影响。这样才能保证PA0为输出。

GPIOA->CRL|=(1<<0);

GPIOA->CRL|=(1<<1);

GPIOA->CRL&=~(1<<3);

GPIOA->CRL&=~(1<<4);

  PA0输出低电平,ODR最后一位为0,其他位不改变。

GPIOA->ODR&=~(1<<0);

led1 黄灯就会亮。

这种写代码方法只需要记住模块和寄存器,后续还要记住第几位,需要查手册。

2.3.4 改进3 使用宏定义改变每一位的表示

时钟开启可以改进:RCC->APB2ENR|=(1<<2)

改进后:RCC->APB2ENR|=RCC_APB2ENR_IOPAENR

大家要熟悉这种写法,以后寄存器写法的代码都是这种风格。完全靠宏定义取代了地址的写法,这个主推!!!

3.GPIO整体概述

GPIO引脚就是通用输入输出引脚。存在意义便是用程序控制他们的输入或输出。

3.1 与GPIO相关寄存器

3.2 8种工作模式

3.3推挽输出总结

3.4 开漏输出

3.5 推挽输出和开漏输出的选择 

使用推挽:

1.驱动能力需求较高的场合

2.高速信号传输

3.无需共用信号线的场合

使用开漏:

1.多个设备共用信号线

2.不同电压系统之间的接口

3.需要外部上拉电阻来确定逻辑高电平的场合 

3.6复用输出模式

复用输出信号来自片上外设(芯片中各种外设模块)

通用开漏,连ODR。

复用开漏,那条线打到片上外设,选哪个模块,配置哪个

复用功能(AF),端口必须配置成复用输出。

看下图,输入模式下,输出完全不导通。

浮空输入,上拉下拉都断开。还想上下拉的话,外部接上拉电阻或下拉电阻。

总结:

模拟输入耗电极小,肖特基触发器关闭。

输入模式就不用分通用还是复用了,都是外部输入来的。

4.GPIO寄存器

每组GPIO端口,都有7个相关寄存器。

配置寄存器和数据寄存器几乎是配置GPIO必用的,必须背会。

上下拉输入都是10 00,那么就用ODR这一位来区分。下拉ODR配0,上拉ODR配1.

0-7引脚用端口配置低寄存器来配,8-15引脚用端口高寄存器来配。

复位值16进制,每一位都是4,0100,对应浮空输入,断掉上下拉电阻的开关,最省电。

输入数据寄存器IDR,16位,一个引脚对应1位。

BS0为1,间接ODR0为1;BR0为1,间接导致OER0为0.如果同时启动BSy和BRy,只有BS起作用。

        LCK0直接对ODR0进行锁定。锁定之后在下次端口位复位前不改配置。

5.Keil+VSCode优化开发体验

为了让页面更好看,联想能力更强。就用keil负责与32的联接烧录,VSCode复制写代码。

VSCode我之前在C语言的教程中,安装过,这里不再阐述,关于汉化和C/C++的扩展插件也下载好。

关键插件:Keil Assistant

 

5.1 下载安装VScode

6.GPIO应用案例:流水灯

需求:在三个LED灯上实现流水灯效果。

注意点:加入延时效果(定时器)。

6.1软件设计

之前我们有过点灯的案例,启动文件和用户文件已经配好,那么可以直接复制使用。将文件的名字和工程名字改过来就可以了。删掉无关文件和目录(编译器自动生成)。

点开工程,完成一系列必要的配置。连上硬件和S-TINK.

之后确定即可。

在VScode里面打开.

导入文件,后写代码

配置GPIOA时钟,再把三个GPIO引脚配成通用推挽输出。记住位或置一,位于置零。

然后我们想想,初始状态得让他们全关灯,然后一个一个亮,前一个亮,后一个就得灭。

我们需要定义延时函数。

我们这个芯片可以用系统滴答定时器。每滴答一次-1.那么多长时间滴答一次?

CPU主频72MHZ,所以一秒钟72M次滴答,1/72M 秒滴答一次。

这样就可以实现流水灯了。

#include "stm32f10x.h"
//定义延时函数
void delay_ms(u16 ms);
void delay_us(u16 us);
void delay_s(u16 s);int main(void)
{//1.时钟配置,开启GPIOA时钟RCC->APB2ENR|=RCC_APB2ENR_IOPAEN;//2.工作模式配置,PA0 PA1 PA8通用推挽输出  CNF=00,MODE=11GPIOA->CRL&=~GPIO_CRL_CNF0;GPIOA->CRL|=GPIO_CRL_MODE0;GPIOA->CRL&=~GPIO_CRL_CNF1;GPIOA->CRL|=GPIO_CRL_MODE1;GPIOA->CRH&=~GPIO_CRH_CNF8;GPIOA->CRH|=GPIO_CRH_MODE8;//3.初始全高电平,都置1GPIOA->ODR|=GPIO_ODR_ODR0;GPIOA->ODR|=GPIO_ODR_ODR1;GPIOA->ODR|=GPIO_ODR_ODR8;//4.在循环中依次点亮,延迟一段时间关闭while(1){//点亮LED1GPIOA->ODR&=~GPIO_ODR_ODR0;//延时半秒delay_ms(500);//关闭LED1GPIOA->ODR|=GPIO_ODR_ODR0;//点亮LED2GPIOA->ODR&=~GPIO_ODR_ODR1;//延时半秒delay_ms(500);//关闭LED2GPIOA->ODR|=GPIO_ODR_ODR1;//点亮LED3GPIOA->ODR&=~GPIO_ODR_ODR8;//延时半秒delay_ms(500);//关闭LED3GPIOA->ODR|=GPIO_ODR_ODR8;}}void delay_us(u16 us)
{//设置系统定时器的初始计数值SysTick->LOAD=72 * us;//配置系统定时器SysTick->CTRL=0x05;//轮询等待计数值变为0,countflag-1while(!(SysTick->CTRL&SysTick_CTRL_COUNTFLAG)){}
//关闭定时器
SysTick->CTRL&=~SysTick_CTRL_ENABLE;
}void delay_s(u16 s)
{while (s--){delay_ms(1000);}
}void delay_ms(u16 ms)
{while (ms--){delay_us(1000);}}

相关文章:

嵌入式软件--stm32 DAY 2

大家学习嵌入式的时候&#xff0c;多多学习用KEIL写代码&#xff0c;虽然作为编译器&#xff0c;大家常用vscode等常用工具关联编码&#xff0c;但目前keil仍然是主流工具之一&#xff0c;学习掌握十分必要。 1.再次创建项目 1.1编译器自动生成文件 1.2初始文件 这样下次创建新…...

多模态大语言模型arxiv论文略读(二十九)

Temporal Insight Enhancement: Mitigating Temporal Hallucination in Multimodal Large Language Models ➡️ 论文标题&#xff1a;Temporal Insight Enhancement: Mitigating Temporal Hallucination in Multimodal Large Language Models ➡️ 论文作者&#xff1a;Li Su…...

【人工智能学习-01-01】20250419《数字图像处理》复习材料的word合并PDF,添加页码

前情提要 20250419今天是上师大继续教育人工智能专升本第一学期的第一次线下课。 三位老师把视频课的内容提炼重点再面授。&#xff08;我先看了一遍视频&#xff0c;但是算法和图像都看不懂&#xff0c;后来就直接挂分刷满时间&#xff0c;不看了&#xff09; 今天是面对面授…...

B端APP设计:打破传统限制,为企业开启便捷新通道

B端APP设计&#xff1a;打破传统限制&#xff0c;为企业开启便捷新通道 在数字化转型浪潮中&#xff0c;企业级移动应用正突破传统管理系统的功能边界&#xff0c;演变为连接产业链各环节的核心枢纽。本文从技术架构革新、交互模式进化、安全防护升级三个维度&#xff0c;系统…...

【多线程5】面试常考锁知识点

文章目录 悲观/乐观锁挂起等待锁/自旋锁偏向锁轻量级/重量级锁锁升级CASCAS引发的ABA问题解决方案 原子类 公平/不公平锁可重入锁ReentrantLock读写锁 Callable接口 这里的“悲观”“乐观”“挂起等待”“自旋”“轻量级”“重量级”“公平”“非公平”“可重入”仅代表某个锁的…...

Linux第一个系统程序——进度条

1.回车与换行 回车&#xff08;CR, \r&#xff09;&#xff1a; 作用&#xff1a;将光标移动到当前行的行首&#xff08;最左侧&#xff09;&#xff0c;但不换到下一行。 历史来源&#xff1a;源自打字机的“回车”操作——打字机的滑架&#xff08;Carriage&#xff09;需…...

C 语 言 --- 指 针 3

C 语 言 --- 指 针 3 函 数 指 针函 数 指 针 数 组代 码 解 释回 调 函 数 - - - qsort模 拟 实 现 qsort 函 数 总结 &#x1f4bb;作 者 简 介&#xff1a;曾 与 你 一 样 迷 茫&#xff0c;现 以 经 验 助 你 入 门 C 语 言 &#x1f4a1;个 人 主 页&#xff1a;笑口常开x…...

蓝桥杯之递归

1.数字三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和&#xff08;路径上的每一步只可沿左斜线向下或右斜线向下走&#xff09;。 输…...

学习笔记十八——Rust 封装

&#x1f9f1; Rust 封装终极指南&#xff1a;结构体、模块、Trait、目录结构与模块引用 &#x1f9ed; 目录导航 什么是封装&#xff1f;Rust 的封装理念Rust 的封装工具总览模块&#xff08;mod&#xff09;和访问控制&#xff08;pub&#xff09;详解结构体和枚举&#xff…...

【面试向】点积与注意力机制,逐步编码理解自注意力机制

点积&#xff08;dot product&#xff09;两个向量点积的数学公式点积&#xff08;dot product&#xff09;与 Attention 注意力机制&#xff08;Attention&#xff09;注意力机制的核心思想注意力机制中的缩放点积自注意力机制中&#xff0c;谁注意谁&#xff1f; 逐步编码理解…...

基础数学知识-线性代数

1. 矩阵相乘 c i j = a i k ∗ b k j c_{ij} = a_{ik} * b_{kj} cij​=aik​∗bkj​ 1. 范数 1. 向量的范数 任意一组向量设为 x ⃗ = ( x 1 , x 2 , . . . , x N ) \vec{x}=(x_1,x_2,...,x_N) x =(x1​,x2​,...,xN​) 如下: 向量的1范数: 向量的各个元素的绝对值之和∥ …...

【KWDB 创作者计划】_上位机知识篇---Docker容器

文章目录 前言1. Docker 容器是什么&#xff1f;隔离性轻量级可移植性可复用性 2. Docker 核心概念镜像容器仓库Dockerfile 3. Docker 基本使用(1) 安装 Docker(2) 容器生命周期管理(3) 镜像管理(4) 进入容器内部(5) 数据持久化&#xff08;挂载卷&#xff09;(6) 网络管理 4. …...

指针函数和函数指针

指针函数本质是一个函数&#xff0c;只是函数的返回值是指针类型 函数指针本质是一个指针&#xff0c;只是这个指针指向的是一个函数 指针函数 函数有很多类型的返回值&#xff0c;例如 short funcA(参数列表) // 表示该函数返回值是一个short类型 void funcA(参数列表) // 表…...

案例驱动的 IT 团队管理:创新与突破之路:第六章 组织进化:从案例沉淀到管理体系-6.1 案例库建设方法论-6.1.2案例分级与标签体系

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 案例分级与标签体系构建方法论&#xff1a;IT团队知识管理的结构化实践1. 案例库建设的战略价值与核心挑战1.1 案例管理的战略定位1.2 分级标签体系的核心价值 2. 案例分级体…...

sqlilabs-Less之HTTP头部参数的注入——基础篇

Less-18 user-agent报错注入 这一关的代码漏洞点出现在了insert语句&#xff0c;因为这里没有对user-agent和ip_address进行过滤&#xff0c;&#xff0c;并且输出了mysql的错误信息 补充知识点 PHP里用来获取客户端IP的变量 $_SERVER[HTTP_CLIENT_IP] #这个很少使用&#xf…...

java多线程相关内容

java线程创建的方式 一共有四种方式 继承 Thread 类&#xff1a;本质上是实现了 Runnable 接口的一个实例&#xff0c;代表一个线程的实例 启动线程的唯一方 法就是通过 **Thread 类的 start()**实例方法。start()方法是一个 native 方法&#xff0c;它将启动一个新线 程&…...

Windows Server .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题

第一篇&#xff1a; Windows .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题 第二篇&#xff1a;Windows Server .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题 第三篇&#xff1a;Windows .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题 设置…...

ubuntu24.04上使用qemu+buildroot+uboot+linux+tftp+nfs模拟搭建vexpress-ca9嵌入式linux开发环境

1 准备工作 1.1 安装依赖工具 sudo apt-get update && sudo apt-get install build-essential git bc flex libncurses5-dev libssl-dev device-tree-compiler1.2 安装arm交叉编译工具链 sudo apt install gcc-arm-linux-gnueabihf安装之后&#xff0c;在终端输入ar…...

Cocos Creater打包安卓App添加隐私弹窗详细步骤+常见问题处理

最终演示效果,包含所有代码内容 + 常见错误问题处理 点击服务协议、隐私政策,跳转到相关网页, 点击同意进入游戏,不同意关闭应用 一,添加Activity,命名为MyLaunchActivity 二,编写MyLaunchActivity.java的内容 package com.cocos.game.launch;import android.os.Bund…...

UI文件上传

1、文件上传&#xff1a;文件上传是自动化中比较麻烦棘手的部分。 有些场景我们需要上传本地文件到项目里。这种比较麻烦&#xff0c;因为需要点开文件上传的窗口后&#xff0c;打开的是windows的文件选择窗口&#xff0c; 而selenium是无法操作这个窗口的。 selenium只能操作…...

2.凸包优化求解

1.减而治之(Decrease and Conquer) 插入排序 典型的减而治之算法就是插入排序方法 插入排序法: 在未排序中选择一个元素&#xff0c;插入到已经排序号的序列中 将凸包也采用减而治之的方法 2.In-Convex-Polygon Test 怎么判断引入的极点存在于多边形里面还是外面&#xff1…...

从0开发一个unibest+vue3项目,使用vscode编辑器开发,总结vue2升vue3项目开始,小白前期遇到的问题

开头运行可看官网 链接: unibest官网 一&#xff1a;vscode中vue3代码显示报错标红波浪线 去查看扩展商店发现一些插件都弃用了&#xff0c;例如h5的插件以及vue老插件 解决办法&#xff1a;下载Vue - Official插件&#xff08;注意&#xff1a;横杠两边是要加空格的&#xff…...

jmeter中文乱码问题解决

修改jmeter.properties配置文件‌ 进入JMeter安装目录的bin文件夹&#xff0c;找到jmeter.properties文件。搜索参数sampleresult.default.encodingUTF-8&#xff0c;取消注释&#xff08;删除行首的#&#xff09;&#xff0c;并将其值改为UTF-8。保存文件并‌重启JMeter‌生效…...

额外篇 非递归之美:归并排序与快速排序的创新实现

个人主页&#xff1a;strive-debug 快速排序非递归版本 非递归版本的快速排序是为了解决在空间不够的情况下&#xff0c;利用栈来模拟递归的过程。 递归版本的快速排序是空间换时间&#xff0c;好实现。 实现思路&#xff1a; 1. 创建一个栈&#xff0c;将数组的右边界下标和…...

[文献阅读] EnCodec - High Fidelity Neural Audio Compression

[文献信息]&#xff1a;[2210.13438] High Fidelity Neural Audio Compression facebook团队提出的一个用于高质量音频高效压缩的模型&#xff0c;称为EnCodec。Encodec是VALL-E的重要前置工作&#xff0c;正是Encodec的压缩量化使得VALL-E能够出现&#xff0c;把语音领域带向大…...

JavaSpring 中使用 Redis

创建项目 配置 Redis 服务地址 创建 Controller 类 由于当前只是些简单的测试代码&#xff0c;所以就不进行分层了&#xff0c;只创建一个 Controller 来实现 jedis 通过 jedis 对象里的各种方法来操作 Redis 此处通过 StringRedisTemplate 来操作 Redis 最原始提供的类是 Re…...

B端可视化像企业数据的透视镜,看清关键信息

在数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;数据的价值不仅取决于其数量&#xff0c;更在于企业能否快速、准确地提取关键信息并据此做出决策。B端可视化技术的出现&#xff0c;为企业提供了一种强大的工具&#xff0c;它如同企业的“透视镜”&…...

【愚公系列】《Python网络爬虫从入门到精通》055-Scrapy_Redis分布式爬虫(安装Redis数据库)

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

【MySQL】SQL语句在MySQL中的执行过程?主要存储引擎区别?

MySQL SQL语句执行过程详解 作为面试官&#xff0c;我来详细剖析一条SQL语句在MySQL中的完整执行过程&#xff0c;这是每个后端开发者都应该掌握的核心知识。 一、连接阶段 建立连接 客户端通过TCP/IP协议与MySQL服务器建立连接(默认3306端口)服务器验证用户名、密码和权限…...

致远OA——数据回填表单

文章目录 :apple: 业务需求描述:pineapple: 业务分析和实现 &#x1f34e; 业务需求描述 测试案例&#xff1a; https://pan.quark.cn/s/3f58972f0a27 官网地址&#xff1a; https://open.seeyoncloud.com/v5devCAP/94/355/359/399/405/406.html 需求描述&#xff1a; 点…...

MongoDB导出和导入数据

安装mongodump工具 参考文章mongodump工具安装及使用详解_mongodump安装-CSDN博客 MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装&#xff0c;而是需要自己手动安装。 官方网站下载链接&#xff1a;Download MongoDB Command Line Database Tools …...

蓝桥杯之递归二

1.数的划分 题目描述 将整数 nn 分成 kk 份&#xff0c;且每份不能为空&#xff0c;任意两份不能相同(不考虑顺序)。 例如&#xff1a;n7&#xff0c;k3n7&#xff0c;k3&#xff0c;下面三种分法被认为是相同的。 1&#xff0c;1&#xff0c;5;1&#xff0c;5&#xff0c;…...

【大疆dji】ESDK开发环境搭建(软件准备篇)

接上一篇【大疆dji】ESDK开发环境搭建&#xff08;硬件准备篇&#xff09; 1. 编译环境 ESDK 提供 x86_64/aarch64 基于 Linux 平台 Ubuntu 发行版操作系统构建的静态库&#xff0c;运行 demo 先正确安装所需的依赖包。arm32位就不支持了。建议使用编译安装的方式&#xff0c;…...

Android TTY设备调用流程和简单分析

Linux TTY系统中ioctl的调用流程详解:从应用层到MSM GENI Serial驱动 本文档详细分析Linux系统中从用户空间应用程序发起TTY ioctl请求到特定驱动(例如msm_geni_serial_ioctl)的完整调用流程,包括32位应用与64位内核之间的兼容性问题分析。 1. 总体调用路径概览 以下是完…...

数字孪生赋能管理系统,降本增效立竿见影

1. 数字孪生基础概念及其在管理系统中的应用前景 数字孪生是一种集成多学科、多物理量、多尺度、多概率的仿真过程&#xff0c;在虚拟空间中完成映射&#xff0c;从而反映相对应的实体装备的全生命周期过程。其核心在于将现实世界中的物理对象或系统与其数字化模型相结合&…...

Java学习手册:Web 应用架构概述

一、Web 应用架构的演变 在互联网发展的初期阶段&#xff0c;Web 应用普遍采用客户端 / 服务器&#xff08;C/S&#xff09;架构模式。客户端应用程序与服务器端应用程序直接建立连接&#xff0c;进行数据交互和业务处理。然而&#xff0c;这种架构存在诸多局限性。由于客户端…...

企业网站安装 SSL安装的必要性

能够带来安全的加密和快速的访问体验&#xff0c;防止中间人的流量劫持&#xff0c;保障用户隐私信息的安全&#xff0c;帮助用户识别钓鱼网站&#xff0c;提升网站在搜索引擎的排名。 能够防止黑客盗走客户银行卡账号的机密信息&#xff0c;保证信息的机密性&#xff0c;防止…...

【CF】Day38——Codeforces Round 965 (Div. 2) B

B. Minimize Equal Sum Subarrays 题目&#xff1a; 思路&#xff1a; 直觉题 我们可以这样构造&#xff0c;将整个数列左移一位即可&#xff0c;为什么呢&#xff1f; 因为这样我们能尽可能地保证数列的数字尽可能多的同时 且 有一个数不同 这里介绍一个rorate函数&#xf…...

leetcode 300. Longest Increasing Subsequence

目录 题目描述 第一步&#xff0c;明确并理解dp数组及下标的含义 第二步&#xff0c;分析明确并理解递推公式 第三步&#xff0c;理解dp数组如何初始化 第四步&#xff0c;理解遍历顺序 代码 题目描述 这是动态规划解决子序列问题的例子。 第一步&#xff0c;明确并理解…...

解密大模型背后的秘密:训练、优化与挑战

解密大模型背后的秘密&#xff1a;训练、优化与挑战 在当今的人工智能领域&#xff0c;大模型&#xff08;Large Language Models, LLMs&#xff09;已经成为了一个不可忽视的存在。从自然语言处理到图像生成&#xff0c;再到推荐系统&#xff0c;大模型以其强大的泛化能力和创…...

第33讲|遥感大模型在地学分类中的初探与实战

目录 🧠 一、什么是“遥感大模型”? 📚 二、遥感大模型在地学分类中的优势 📍三、案例:使用 Segment Anything Model (SAM) 进行遥感地物分割 📦 1. 安装与依赖配置(PyTorch) 🖼 2. 读取遥感图像(可用 Sentinel-2 伪彩色图) 🔧 3. SAM 模型载入 💡 …...

LeetCode 438 找到字符串中所有字母异位词

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "…...

【25软考网工笔记】第二章(6)脉冲编码调制PCM、通信和交换方式

目录 一、脉冲编码调制PCM 1. 脉冲编码调制的数字化过程 1&#xff09;采样 2&#xff09;量化 3&#xff09;编码 2. PCM计算 3. 应用案例 1&#xff09;例题1 2&#xff09;例题1 3&#xff09;例题3 知识小结 二、通信和交换方式 1.数据通信方式分类 1&#x…...

JSON学习笔记

文章目录 1. JSON是什么2. JSON的特点与结构3. JSON的使用4. JSON文件读取 1. JSON是什么 JSON&#xff08;JavaScript Object Notation&#xff0c;JavaScript对象表示法&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和…...

高阶指南:动态定价下eBay利润率控制的4维财务模型

在eBay平台上&#xff0c;动态定价&#xff08;Dynamic Pricing&#xff09;早已不是新鲜概念。随着市场供需的瞬时波动、竞争产品的变化&#xff0c;以及跨境电商红海局势的加剧&#xff0c;卖家若想在残酷的价格战中保住利润、稳住运营基本盘&#xff0c;仅靠经验主义已经远远…...

【NLP 66、实践 ⑰ 基于Agent + Prompt Engineering文章阅读】

你用什么擦干我的眼泪 莎士比亚全集 工业纸巾 还是你同样泛红的眼睛 —— 4.19 一、⭐【核心函数】定义大模型调用函数 call_large_model prompt&#xff1a;用户传入的提示词&#xff08;如 “请分析这篇作文的主题”&#xff09;&#xff0c;指导模型执行任务 client&…...

Keil MDK中禁用半主机(No Semihosting)

在 ARM 编译器&#xff08;如 Keil MDK&#xff09; 中禁用半主机&#xff08;Semihosting&#xff09;并实现标准库的基本功能&#xff0c;需要以下步骤&#xff1a; 1. 禁用半主机 #pragma import(__use_no_semihosting) // 禁用半主机模式作用&#xff1a;防止标准库函数&…...

QML中的3D功能--纹理应用

Qt 3D 提供了强大的纹理支持,可以实现各种复杂的材质效果。以下是 Qt 3D 纹理开发的全面技术方案。 一、纹理处理的流程图 纹理处理关键步骤说明: 资源准备阶段 支持格式:PNG/JPG/KTX/DDS等 尺寸要求:建议2的幂次方(非强制) 纹理加载路径 qml Texture2D {source: "…...

LeetCode[459]重复的子字符串(KMP解法)

思路&#xff1a; 最近迷上了KMP算法&#xff0c;所以这道题也是来搞一下KMP算法&#xff0c;总所周知KMP是需要维护一个前缀表&#xff0c;KMP算法不是比较一个字符串包不包含另一个字符串的吗&#xff0c;这个重复字符串的题也能用&#xff1f;猫爷&#xff1a;毋庸置疑&…...

数据驱动未来:大数据在智能网联汽车中的深度应用

数据驱动未来:大数据在智能网联汽车中的深度应用 引言 随着智能网联汽车(Intelligent Connected Vehicles,ICV)的快速发展,数据已成为其核心驱动力。从实时交通数据到车辆传感器信息,大数据的深度应用正在让智能汽车更安全、更高效、更智能化。那么,大数据如何赋能智能…...