【STM32】 强大的 STM32Cube 生态 STM32CubeIDE 无伤速通

news2024/10/1 23:29:31

本文介绍的软件,均可以在ST官网st.com免费下载(你需要注册登录),首选官网下载最新版本,如果有问题,可以在我的公众号回复:Cube,获取截止今日的最新版本软件安装包。

目录

  • 一、STM32Cube生态
    • 1.1 STM32Cube 生态是什么?
    • 1.2 STM32Cube 生态有哪些组成部分?
    • 1.3 STM32Cube 生态有什么优势?
  • 二、STM32CubeIDE 和 STM32CubeMX
    • 2.1 STM32CubeIDE
      • 2.11 简介
      • 2.12 安装与汉化:最强汉化
    • 2.2 STM32CubeMX
      • 2.21 简介
      • 2.22 与 keil 的 RTE 比较
  • 三、STM32CubeProgrammer
    • 3.1 简介
    • 3.2 与 Keil 的 download 功能比较
  • 四、STM32CubeMonitor 系列
    • 4.1 简介
  • 五、软件的实际使用:简单使用
    • 5.1 完整步骤
    • 5.2 拓展

一、STM32Cube生态

1.1 STM32Cube 生态是什么?

STM32Cube 生态是ST公司开发的一套面向 STM32 微控制器和微处理器的完整软件解决方案,旨在为开发者提供一个简单而集成的开发环境。

STM32Cube 生态包括软件工具和嵌入式软件库,能够满足开发者在整个项目开发周期中的各种需求,从配置、编译、编程、调试到监控等。

再来重复几个基本概念吧:

  • ARM是一家设计和授权微处理器架构和核心的公司,它不生产芯片,而是授权给其他厂商使用它的技术。
  • ST是一家生产和销售半导体产品的公司,它是ARM的合作伙伴之一,拥有使用ARM架构和核心的许可。
  • STM32是ST公司推出的一系列基于ARM Cortex-M内核的32位微控制器,它们具有高性能、低功耗、丰富外设和易开发的特点。


    因此,可以说STM32是基于ARM技术的ST产品,它们之间有着紧密的合作关系。

1.2 STM32Cube 生态有哪些组成部分?


STM32Cube 生态主要由以下几个部分组成:
  • STM32Cube 软件工具套件,包括:
    • STM32CubeMX,一个适用于任何 STM32 设备的配置工具。它提供了一个易于使用的图形用户界面,可以生成用于 Cortex-M 内核的初始化 C 代码,或者用于 Cortex-A 内核的 Linux 设备树源代码。
    • STM32CubeIDE,一个集成开发环境。它基于开源的 Eclipse 或 GNU C/C++ 工具链,提供了编译报告和高级调试功能。它还集成了生态系统中其他工具的附加功能,例如 STM32CubeMX 的硬件和软件初始化和代码生成功能。
    • STM32CubeCLT,一个命令行开发工具集,提供了代码编译、板卡编程和调试功能。
    • STM32CubeProgrammer,一个编程工具(即烧录、下载)。它提供了一个易于使用且高效的环境,用于通过各种可用的通信媒介(JTAG、SWD、UART、USB DFU、I2C、SPI、CAN 等)读取、写入和验证设备和外部存储器。
    • STM32CubeMonitor 系列工具。强大的监控工具,可以帮助开发者实时地调整和优化应用程序的行为和性能。
  • STM32Cube 嵌入式软件,可以加速项目开发:
    • STM32Cube MCU 和 MPU 软件包,针对每个 STM32 系列提供了操作可用的 STM32 外设所需的所有嵌入式软件模块。它们包括驱动程序(HAL、低层等)、中间件以及大量用于各种实际用例的示例代码。
    • STM32Cube 扩展软件包,提供了面向应用的解决方案。它们补充并扩展了 STM32Cube MCU 软件包的功能,提供了额外的嵌入式软件模块。STM32 扩展软件包来自 ST 或经过认证的合作伙伴,围绕 STM32 创建了一个广泛且可扩展的嵌入式软件产品线。

在这里插入图片描述

1.3 STM32Cube 生态有什么优势?

STM32Cube 生态为所有 STM32 用户带来了一个简单而集成的解决方案。它涵盖了整个 STM32 产品系列的开发,并提供了一套商业友好的解决方案:

  • 它是免费且无限制地使用
  • 它是基于标准化 API 的可移植性
  • 它是与主流 IDE 的兼容性
  • 它是与第三方软件组件和服务提供商的互操作性
  • 它是持续更新和维护

二、STM32CubeIDE 和 STM32CubeMX

软件直接去ST官网st.com下载安装就行了,没什么好说的。

https://www.st.com/zh/development-tools/stm32cubeide.html#st_description_sec-nav-tab

2.1 STM32CubeIDE

2.11 简介

STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。

STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。

STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项目并生成初始化代码。在开发过程的任何时间,用户均可返回外设或中间件的初始化和配置阶段,并重新生成初始化代码,期间不会影响用户代码。

STM32CubeIDE包含相关构建和堆栈分析仪,能够为用户提供有关项目状态和内存要求的有用信息。

STM32CubeIDE还具有标准和高级调试功能,其中包括CPU内核寄存器、存储器和外设寄存器以及实时变量查看、串行线传输监测器接口或故障分析器的视图。


所有功能:

  • 通过STM32CubeMX来集成服务:STM32微控制器、微处理器、开发平台和示例项目选择引脚排列、时钟、外设和中间件配置项目创建和初始化代码生成具有增强型STM32Cube扩展包的软件和中间
  • 基于Eclipse®/CDT™,支持Eclipse®插件、GNU C/C++ for Arm®工具链和GDB调试器
  • STM32MP1 系列:支持OpenSTLinux项目:Linux支持Linux
  • 其他高级调试功能包括:CPU内核、外设寄存器和内存视图实时变量查看视图系统分析与实时跟踪(SWV)CPU故障分析工具支持RTOS感知调试,包括Azure
  • 支持ST-LINK(意法半导体)和J-Link (SEGGER)调试探头
  • 从Atollic® TrueSTUDIO®和AC6 System Workbench for STM32 (SW4STM32)导入项目
  • 支持多种操作系统:Windows®、Linux®和macOS®,仅限64位版本

2.12 安装与汉化:最强汉化

自己下载安装就行了,官网应该是可以直接进去的,并且支中文、英文、日文。记得不要光下载软件,没事多浏览浏览官网,总会有意想不到的收获。

安装(开发软件安装路径不要有中文,这个不用说了,其他选择默认就行了,需要xxx信任xxx的,选择信任就行了)之后,默认是英文的,如图所示:

在这里插入图片描述

上图界面是默认打开的information center,它是Help菜单下的第一个选项。主要显示一些新闻、相关连接、还有工程的快捷创建(左侧)。


如果你习惯英文,就很好。如果有的选项看不懂,可以汉化一下。IDE的设置选项里面没有语言切换,但是前面讲过,它是基于Eclipse开发的,所以可以通过eclipse的插件功能,来安装中文语言支持包。

Eclipse自己有一个Babel项目,它的目的是让Eclipse支持多种语言,包括中文。

Babel项目提供了以下功能:

  • 语言包,可以让用户下载和安装不同语言的Eclipse界面,包括菜单、对话框、提示等。
  • 翻译工具,可以让用户参与Eclipse项目的翻译工作,为自己喜欢的语言贡献力量。
  • 翻译测试,可以让用户检查和评估Eclipse项目的翻译质量和一致性。

项目页面:https://eclipse.dev/babel/downloads.php(如果某一天链接失效了,可以去Eclipse官网直接搜索Babel)

这个页面会告诉你如何安装语言包(language packs),在STM32CubeIDE中的操作步骤是:

  1. 复制Babel项目页面的最新仓库地址,现在是:https://download.eclipse.org/technology/babel/update-site/latest/
  2. 点击IDE的Help菜单,点击Install New Software…选项,点击Add,自定义一个名称,输入url,把刚才的仓库连接添加进去。
  3. 选择添加的仓库,等待加载相关的插件。
  4. 找到Babel Languagetool Packs in Chinese(simplified),先全选,然后展开,取消勾选....rt.rap....这个语言包,如果安装了这个包的话,会导致欢迎页面报错。
    在这里插入图片描述
  5. 然后下一步安装就行,中间会有提示信任XXX的,选择信任继续安装即可,关闭安装界面,会在IDE的右下角看到进度,安装完了会要求重启软件已生效。
  6. 注意:你可以只选择语言包里面的…for Eclipse…这一个语言包,会快一点,安装后大部分内容会变成中文(因为基于eclipse),不过也够用了。无论是否全部安装,都不会100%汉化,因为Babel是Eclipse的语言与翻译项目,不是针对STM32CubeIDE的。

当然了,你也可以直接从Babel官网下载语言包,然后在Add那里选择本地即可,不推荐。

如果你去看别人的文章,基本都是丢一个2019的链接,或者镜像库的链接,基本都不是最新的,不过应该也能用。

最大程度汉化后,应该是这样的:
在这里插入图片描述


熟悉软件后,可以卸载这些语言包,用原生的英文界面:

  1. 打开STM32CubeIDE,点击[Help] > [Install New Software…],打开安装向导。
  2. 点击[What is already installed?](这个选项位于页面中下,蓝色超链接),打开已安装的软件列表。
  3. 在列表中找到不要的包,选中它,然后点击[Uninstall…],开始卸载过程。
  4. 按照提示完成卸载操作,最后重启STM32CubeIDE,即可恢复英文界面。

2.2 STM32CubeMX

2.21 简介


STM32CubeMX 是一款图形工具,可帮助开发人员生成初始化微控制器及其应用程序的代码。

用户可以通过一个界面来配置 MCU 的引脚排列并解决冲突,以及设置硬件外设和中间件。用户还可以配置时钟树并受益于自动执行特定计算的向导。

该工具还可以帮助选择 MCU 或 MPU 并下载其软件包。因此,它通常是与开发人员的第一个接触点。该工具可在 STM32CubeIDE 中使用或作为独立下载使用。

STM32CubeMX 还为开发人员的其他工作提供帮助。例如,找到正确的文档可能很棘手,尤其是对于如此庞大的库。ST 以其丰富的文档而闻名,合作伙伴告诉我们,这是他们选择我们器件的原因之一。因此, STM32CubeMX 独立版本中提供了教程视频,以帮助开发人员搜索信息。例如,提供有关如何配置时钟树、引脚或不同软件功能的内容。

2.22 与 keil 的 RTE 比较

keil 的 Runtime Environment,在前面的文章中已经详细介绍过了,可以自行查看。

STM32CubeMX和keil的RTE是两种不同的STM32开发环境,它们各有优缺点 。

  • STM32CubeMX是ST意法半导体推出的一款图形化配置工具,可以帮助您快速生成初始化代码,配置外设、时钟和引脚,使用HAL/LL库或标准库进行开发。它可以与多种IDE集成,包括keil、IAR、STM32CubeIDE等。

  • keil是一款老牌的通用嵌入式开发环境,支持多种MCU,包括51、ARM Cortex M0-7等。它有着强大的调试能力,可以进行在线仿真或离线模拟,观察CPU寄存器、内存数据、变量数据等信息。它也提供了丰富的开发库,可以通过pack manage下载使用。但它也有一些缺点,比如收费、不跨平台、没有UI界面对主题和插件的支持、代码提示功能不够智能等。

  • RTE是keil提供的一种软件组件管理框架,可以帮助您选择和配置需要的软件组件,比如CMSIS、Device Drivers、Middleware、RTOS等。它可以与STM32CubeMX协同工作,将STM32CubeMX生成的代码导入到keil中,并使用RTE进行软件组件管。

综上所述,STM32CubeMX和keil的RTE比较起来,有以下几点区别:

  • STM32CubeMX是一种图形化配置工具,而keil的RTE是一种软件组件管理框架。
  • STM32CubeMX可以与多种IDE集成,而keil的RTE只能在keil中使用。
  • STM32CubeMX可以快速生成初始化代码,而keil的RTE可以用来选择和配置需要的软件组件。
  • STM32CubeMX和keil的RTE都可以使用HAL/LL库或标准库进行开发,但STM32CubeMX提供了更多的第三方库支持。

三、STM32CubeProgrammer

3.1 简介

STM32CubeProgrammer(STM32CubeProg)是一款用于编程STM32产品的全功能多操作系统软件工具。

它通过调试接口(JTAG和SWD)和bootloader接口(UART、USB DFU、I2C、SPI和CAN)提供了一个易用高效的环境,用于读取、写入和验证设备内存。

STM32CubeProgrammer提供了广泛的功能,可对STM32内部存储器(如Flash、RAM和OTP)以及外部存储器进行编程。

STM32CubeProgrammer还允许选择编程和上传、编程内容验证以及通过脚本自动编程。

STM32CubeProgrammer提供了GUI(图形用户界面)和CLI(命令行界面)版本。

所有功能

  • 擦除、编程、查看和验证设备Flash存储的内容
  • 支持Motorola S19、Intel HEX、ELF,以及二进制格式
  • 支持调试和自举程序接口:
  • ST-LINK调试探针(JTAG/SWD)
  • UART、USB DFU、I2C、SPI,以及CAN自举程序接口
  • 对外部存储器进行编程、擦除和验证操作,而外部Flash加载程序示例可以帮助用户为特定的外部存储器开发加载程序
  • 自动完成STM32编程(擦除、验证、编程、配置选项字节)
  • 支持OTP存储编程
  • 支持对选项字节编程和配置
  • 提供命令行界面,通过脚本处理实现自动化
  • ST-LINK固件升级
  • 支持通过“STM32 trusted package creator”工具创建安全固件
  • STM32MP1系列外设启动和刷写
  • 支持对STM32WB系列进行OTA编程
  • 支持多种操作系统:Windows、Linux、macOS

3.2 与 Keil 的 download 功能比较

功能keil里面的download功能STM32CubeProgrammer
支持的接口ST-LINK或J-LINK等调试器JTAG、SWD、UART、USB DFU、I 2 C、SPI、CAN等
支持的存储器STM32的内部Flash或RAMSTM32的内部Flash、RAM、OTP以及外部存储器
支持的文件格式Motorola S19, Intel HEX, ELF, and binary formatsMotorola S19, Intel HEX, ELF, and binary formats
支持的编程选项选择编程和上传、编程内容验证、编程自动化等
支持的其他特性OTA编程、安全固件创建、STM32MP1系列外设启动和闪存等

四、STM32CubeMonitor 系列

4.1 简介

STM32CubeMonitor系列工具能够实时读取和呈现其变量,从而在运行时帮助微调和诊断STM32应用。除了专业版本以外(电源、RF、USB-PD),多功能的STM32CubeMonitor还提供基于流量的图形化编辑器,以便轻松构建自定义操作面板和快速添加小部件,如计量、条形图和图表。借助非介入式监控,STM32CubeMonitor可保留应用的实时行为,并完美补充了执行应用分析的传统调试工具。

凭借远程监控和原生支持的多格式显示,STM32CubeMonitor使用户能够跨网络监控应用,同时测试多个设备,并在各种主机设备(如PC、平板电脑或手机)上执行可视化。此外,通过直接支持Node-RED®开源社区,STM32CubeMonitor支持无限的扩展选择以满足各种应用需求。


STM32CubeMonitor系列工具的功能比较:

软件功能
STM32CubeMonitor-Power- 通过ST-LINK连接到STM32设备,实时监测功耗和电池寿命
- 支持多种电池类型和充放电模式
- 支持功耗数据的记录、重放和分析
- 支持自定义操作面板和小部件
- 支持远程监控和多格式显示
STM32CubeMonitor-RF- 通过ST-LINK连接到STM32WL或STM32WB设备,实时监测无线性能
- 支持LoRaWAN、Sigfox、BLE、802.15.4等协议
- 支持无线数据的记录、重放和分析
- 支持自定义操作面板和小部件
- 支持远程监控和多格式显示
STM32CubeMonitor-USB-PD- 通过ST-LINK连接到STM32G0或STM32G4设备,实时监测USB-PD协议
- 支持USB-PD 3.0规范,包括PPS、DRP、SRC、SNK等模式
- 支持USB-PD数据的记录、重放和分析
- 支持自定义操作面板和小部件
- 支持远程监控和多格式显示
STM32CubeMonitor- 通过ST-LINK连接到任何STM32设备,实时读取和显示变量
- 支持直接采集模式或快照模式
- 支持变量数据的记录、重放和分析
- 提供基于流量的图形化编辑器,无需编程即可构建操作面板
- 提供大量的小部件,如计量、条形图和图表
- 支持多探头同时监测多个目标
- 支持远程监控和多格式显示
- 直接支持Node-RED开源社区

五、软件的实际使用:简单使用

简单的示例:使用STM32CubeIDE创建一个STM32F103C8T6的工程,实现点亮LED的功能。

5.1 完整步骤

步骤一:登录STM32账号

首先在IDE中登录ST的账号(没有先去官网注册),菜单栏最后一个myST ,登录成功后会显示Hello name。

这是必要步骤。

步骤二:创建工程

  1. 打开STM32CubeIDE,选择一个工作区(workspace),也可以设置为每次都使用这个工作区,以后打开软件就不会有这个弹窗。

  2. 然后点击[File]>[New]>[STM32 Project],启动STM32工程向导。(或者直接在information center界面点击Start new STM32 project )

  3. 在弹出的对话框中,输入或选择目标MCU为STM32F103C8T6,然后点击[Next]。可以在前面加星标,方便以后创建工程的时候使用。
    在这里插入图片描述

  4. 在下一个对话框中,输入工程名称,选择目标语言为C,目标文件类型为Executable,工程类型为STM32Cube,然后点击[Next]。
    在这里插入图片描述

  5. 在下一个对话框中,选择所需的代码生成选项,例如是否复制所有用到的库文件到工程目录中,是否生成初始化代码等,然后点击[Finish]。
    在这里插入图片描述

  6. 现在会生成一些初始化代码,其中有一个是ioc文件,IOC是"Integrated Operation Center"(集成操作中心)的缩写。用于保存STM32微控制器的配置信息和项目设置,包括引脚、时钟、中断、外设、电源、FreeRTOS。
    在这里插入图片描述

步骤三:配置引脚

  1. 默认会打开STM32CubeMX窗口(xxx.ioc),在这里可以配置外设、时钟、中间件和功耗。由于本文只需要点亮LED,所以只需要配置GPIO引脚即可。本文使用的是PC13引脚连接LED。
    • 在Pinout & Configuration选项卡中,在pinout view视图中点击PC13,设置为GPIO_Output(默认为Output Push Pull),然后右键Enter User Label,将GPIO port命名为LED。(也可以继续在左侧点击GPIO进行更多设置)
      在这里插入图片描述

步骤四:配置时钟

使用核心板上的高速外部晶振HSE。

  1. 在Pinout & Configuration选项卡中,选择system Core 下面的RCC,将HSE的状态设置为:Crystal/Ceramic Resonator。
    在这里插入图片描述
  2. 在Clock Configuration选项卡中配置时钟源和时钟频率。具体步骤如下:
    • 在HSE处选择Crystal/Ceramic Resonator,表示使用外部晶体振荡器作为HSE时钟源。
    • 在PLL Source Mux处选择HSE,表示使用HSE作为PLL的输入时钟源。
    • 在PLL MUL处选择9,表示将PLL的输入时钟乘以9倍,得到72 MHz的输出时钟。
    • 在SYSCLK Mux处选择PLLCLK,表示使用PLL的输出时钟作为系统时钟。
    • 在AHB Prescaler处选择/1,表示不分频系统时钟,得到72 MHz的AHB总线时钟。
    • 在APB1 Prescaler处选择/2,表示将AHB总线时钟分频2倍,得到36 MHz的APB1总线时钟。
    • 在APB2 Prescaler处选择/1,表示不分频AHB总线时钟,得到72 MHz的APB2总线时钟。
      在这里插入图片描述

步骤五:生成代码

  1. 然后点击Project Manager选项卡,在Code Generator选项中勾选Generate peripheral initialization as a pair of ‘.c/.h’ files per (生成外设初始化源文件和头文件)。
  2. ctrl s,生成代码。
    在这里插入图片描述

步骤六:编写用户代码并编译

  1. 回到STM32CubeIDE中,在Core/Src/main.c文件中,在main函数中,找到while(1)循环,在其中添加如下代码:
HAL_GPIO_TogglePin(LED_GPIO_Port, GPIO_PIN_13); // 翻转LED状态
HAL_Delay(300); // 延时300毫秒
  1. 点击工具栏上的编译图标(锤子形状),编译工程。如果没有错误或警告,就可以将程序烧录到目标板上。
    在这里插入图片描述

步骤七:调试与下载

  1. 更新ST-Link固件。

    • 把ST-Link与MCU断开连接,然后插到电脑上;
    • 点击菜单栏的帮助下面的ST-Link更新;
    • 按照指示更新即可
      在这里插入图片描述
  2. 点击运行或者调试按钮,都会将程序下载到MCU。如果你不需要调试,就点击运行。
    在这里插入图片描述

5.2 拓展

默认是生成elf文件的,它与hex的区别是:

文件格式文件类型文件内容文件用途
elf二进制代码、数据、符号表、重定位信息等调试、链接、烧录
hex文本代码、数据、校验和等烧录

如果要生成hex文件,可以在项目名称上右击,点击属性,按照如下设置:
在这里插入图片描述

也可以使用STM32CubeProgrammer下载程序:

  1. 打开STM32CubeProgrammer,选择ST-LINK作为连接方式,点击Connect按钮,连接到目标芯片。
  2. 在Erasing & Programming选项卡中,点击Browse按钮,选择要下载的hex或者elf文件。
  3. 点击Start Programming按钮,开始下载程序到目标芯片中。

在这里插入图片描述



~

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

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

相关文章

传统域名与区块链域名的区别是什么?

区块链技术的发展,不仅带来了数字货币的兴起,还催生了一种新型的互联网域名——Web3 域名。Web3 域名作为一种新兴的域名体系,与传统的域名有着很大的区别。今天,我们就来探讨一下传统域名与区块链域名的区别。 首先,让…

查看docker容器启动参数

查看docker启动参数 1、查看docker容器的自启动策略2、查看docker容器的日志滚动清理策略 以下配置命令以redis容器为例 1、查看docker容器的自启动策略 docker inspect --format{{json .HostConfig.RestartPolicy}} redis输出的name是always 表示此容器是开机自启动的&#x…

蓝桥杯上岸必背!!!(第六期树与图的遍历)

第六期:树与图的遍历 🔥 🔥 🔥 蓝桥杯热门考点模板总结来啦✨ ~ 你绝绝绝绝绝绝对不能错过的常考树与图的遍历模板 💥 ❗️ ❗️ ❗️ 大家好 我是寸铁 💪 祝大家4月8号蓝桥杯上岸 ☀️ 还没背熟模板…

2.1数据结构——线性表

一、定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列,(n表示表长,n0为空表) 用L表示: 位序:线性表中的“第i个” a1是表头元素;an是表尾元素 除第一个…

2023 年牛客多校第三场题解

A World Fragments I 题意:给定两个二进制数 x , y x,y x,y,每次可以选择 x x x 二进制表达中的其中一位 b b b,然后执行 x ← x − b x \leftarrow x-b x←x−b 或 x ← x b x \leftarrow xb x←xb。问 x x x 最少经过多少次操作变成…

高速数据采集专家-FMC140【产品手册】

FMC140是一款具有缓冲模拟输入的低功耗、12位、双通道(5.2GSPS/通道)、单通道10.4GSPS、射频采样ADC模块,该板卡为FMC标准,符合VITA57.1规范,该模块可以作为一个理想的IO单元耦合至FPGA前端,8通道的JESD204…

第一启富金:现货黄金市场等待央行决议 非美商品‘弱不禁风’

第一启富金基本面分析: 中国纸黄金交易通显示,全球最大黄金上市交易基金(ETF)截至07月22日持仓量为919.00吨,较上日增持5.20吨,本月止净减持2.90吨。 在俄罗斯上周退出黑海谷物协议,摧毁了乌克兰通往基辅的一条出口路线…

PKCS#1: RSA加密时摘要值规范

RSA的加密和签名标准是类似的,加密时的摘要值结构如下 即非普通的hash摘要值,而是der编码结构的hash摘要值,用ASN1工具打开 可以快速的组装成一个der编码结构的摘要值,代码如下 ByteArrayOutputStream digestInfoValueBuf new By…

《向量数据库指南》:向量数据库Pinecone如何集成OpenAI

目录 嵌入式介绍 环境设置 创建嵌入 初始化Pinecone索引 填充索引 ⚠️警告 查询 本指南介绍了将OpenAI的大型语言模型(LLMs)与Pinecone(称为 OP stack )集成的方法,增强LLMs的语义搜索或“长期记忆”。此组合利用LLMs的嵌入和完成(或生成)端点,以及Pinecone的向…

MySQL 数据库约束

目录 一、数据库约束 1、约束类型 二、NULL 约束 三、unique 约束 四、default 约束 五、primary key 约束 自增主键 六、foreign key 外键约束 七、check 约束 一、数据库约束 我们使用数据库来存储数据,一般是希望这里存储的数据是靠谱的,…

追觅科技,拿什么撑起「百亿」野心?

作者 | 刘然 来源 | 洞见新研社 极度内卷的扫地机人赛道迎来了分叉路口。 从头部企业的最新动向,我们可以一览行业变化。 科沃斯选择多元化发展,大力拓展家电品类,推出了智能料理机、空气净化仪等产品;石头科技坚守爆品战略的同…

超详细,自动化测试allure测试报告实战(总结)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 allure可以输出非…

【Kubernetes运维篇】ingress-nginx实现业务灰度发布详解

文章目录 一、理论:实现灰度发布的几种场景1、场景一:将新版本灰度给部分用户2、场景二:按照比例流程给新版本3、实现灰度发布字段解释 二、实践:1、实验前提环境2、基于Request Header(请求头)进行流量分割3、基于Cookie进行流量…

FAPI15 探针,作为代谢剂进行PETCT检测,反应机理说明

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----FAPI-15试剂 英文名称:FAPI-15 CAS号:N/A 分子式:N/A 分子量:N/A 规格标准:1g,5g,10g,可提供mg级以及kg级的产品开发…

docker容器引擎(四)

docker 一、docker compose的理论二、docker-compose工具实验创建apache容器创建LNMP 一、docker compose的理论 docker compose简而言之就是实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker compose来根…

专项练习-04编程语言-03JAVA-03

1. java 中哪个关键字可以对对象加互斥锁?A transient B synchronized C serialize D static 正确答案:B 官方解析:暂无官方题目解析,去讨论区看看吧! 知识点:Java、Java工程师、20172. 关于异常处理机制的…

93.qt qml-自定义Table优化(新增:水平拖拽/缩放自适应/选择使能/自定义委托)

之前我们更新了90.qt qml-Table表格组件(支持表头表尾固定/自定义颜色/自定义操作按钮/排序)_qml 表格_诺谦的博客-CSDN博客 但是一直没出源码,是因为该demo还存在问题,那就是表头表尾固定下,如果是半透明状态下,会看到表头表尾固定后的内容,所以只能重构代码,不能使用重…

关于阅读《重构的时机和方法》这本书所带来的启发

前言 近期,我阅读了由克里斯蒂安克劳森(Christian Clausen)写的、由郭涛翻译的《重构的时机和方法》这本书,读完这本书的内容你会发现《重构的时机和方法》是一本经典的软件开发书籍,它能够帮助软件开发人员提高代码质…

Java_22_多线程02

多线程 线程通信 线程通信:多个线程因为在同一个进程中,所以互相通信比较容易的。 线程通信的经典模型:生产者与消费者问题。 生产者负责生成商品,消费者负责消费商品。 生产不能过剩,消费不能没有。(即时…

创建一个vite项目,一个命令创建

1. 在一个文件夹下打开cmd命令窗口并输入命令: npm init vuelatest //注意,此命令安装的是vue最新的依赖包,步骤也许跟以下有点点区别,不过问题不大 2. 接着询问你是否需要安装以下这些包,这些都是需要的&#xff0c…