STM32 VS Code 扩展用户指南

news2024/12/22 19:20:01

系列文章目录


前言


一、视频教程快速入门

        通过我们简单易学的视频教程,快速掌握新版本的使用方法:

二、功能描述

2.1 创建/导入项目

        STM32 VS Code 扩展提供两种不同的项目创建选项:

  • STM32CubeMX 项目: 这是一个依靠 CMake 作为构建系统的 STM32CubeMX 管理项目。
  • 空项目: 这是一个裸机项目设置,只包含启动 STM32 设备所需的最低限度的代码和脚本集。

        将项目导入 VS Code 时,扩展程序将自动生成 .vscode 文件夹,其中包含编辑/编译/调试所需的元数据(假设项目中尚未存在)。

        有关项目创建的全面指导,请观看我们的教程视频,标题为 "如何使用 STM32 VS Code 扩展创建项目",该视频为新用户和有经验的用户提供了分步指导。

2.1.1 创建 STM32CubeMX 项目

        如果安装了 STM32CubeMX,"启动 STM32CubeMX "按钮将打开 STM32CubeMX。它允许用户为所选设备创建、配置和生成初始化 C 代码。

        要创建以 VS Code 为目标的项目,用户必须在 STM32CubeMX 的项目管理器面板中选择 CMake 的工具链。
        有关 STM32CubeMX 的更多信息,请参阅 UM1718。

        当选择 CMake 作为工具链时,STM32CubeMX CMake 生成器会生成以下文件:

  • cmake\ 文件夹: 此文件夹包含 CMake 相关文件:
    • stm32cubemx" 文件夹: 该文件夹包含 CMakeLists.txt。STM32CubeMX 管理此文件
    • Gcc-arm-none-eabi.cmake: 仅由 STM32CubeMX 生成一次,用户拥有并管理此文件
  • CMakeLists.txt: 仅由 STM32CubeMX 生成一次,用户拥有并管理此 CMake 文件
  • CMakePresets.json: 仅由 STM32CubeMX 生成一次,用户拥有并管理此文件
  • STM32xxxxxxx_FLASH.ld: 链接器脚本。STM32CubeMX 和用户共享所有权

        STM32CubeMX 创建的项目目前不包含 .vscode 文件夹。当使用 "导入 CMake 项目 "按钮在 VS Code 中导入项目时,VS Code 扩展会自动创建该元数据文件夹。

2.1.2 创建一个空项目

        该按钮可生成一个模板项目,其中包含构建项目、初始化 MCU 和分支到 main() 所需的最少一组源文件和元数据文件。这种项目类型的目标用户是需要最大灵活性、最少依赖性和完全所有权的最终用户。用户完全可以添加 HAL/LL 驱动程序,或从头开始编写自己的代码和驱动程序。

        点击后,系统会提示用户输入项目名称。

        命名项目后,文件浏览器将打开,允许用户浏览和选择项目目录。

        下一步是选择目标,目标可以是设备或电路板。

        随后,系统会显示项目摘要,用户可以在单击 "创建项目 "或 "操作 "完成项目创建过程之前查看详情。

        成功创建后,VS Code 会向用户提供三种打开新项目的选项:

  • 将项目添加到当前打开的文件夹中
  • 在新的 VS Code 会话中打开包含项目的文件夹 <-- 推荐选项!
  • 在现有工作区中添加项目链接

小贴士 在 VS Code C/C++ 世界中,通常的做法是每个项目只有一个 VS Code 实例。这是与 STM32CubeIDE 的主要区别,后者通常在一个工作区中打开多个项目。每个 VS Code 实例只有一个项目,可确保编辑器索引、构建和调试的上下文以最佳方式运行。因此,我们推荐第二种方案。

        STM32 VS 代码扩展生成的项目结构如下:

  • .vscode\ 文件夹: 包含元数据的文件夹:
    • c_cpp_properties.json 文件夹: 该文件可确保 C/C++ 编辑器索引正常工作
    • extensions.json: 该文件提供额外的扩展建议
    • launch.json: 此文件自动生成调试配置
    • tasks.json: 此文件是执行某些任务(如加载 flash)的模板
  • cmake\ 文件夹: 此文件夹包含 CMake 相关文件:
    • vscode_generated.cmake: 这是一个转换器生成的文件。只有 STM32 VS Code 扩展程序管理此文件
    • Gcc-arm-none-eabi.cmake: 仅由 STM32 VS Code 扩展生成一次,用户拥有并管理此文件
  • Inc\ 文件夹: 此文件夹为空。用户可自行添加头文件
  • Src\ 文件夹: 该文件夹包含 main.c、**syscall.c 和 sysmem 文件。用户可以在此文件夹中添加自己的源文件
  • Startup\ 文件夹: 此文件夹包含启动文件 startup_stm32xxxxxxxx.s
  • CMakeLists.txt 文件夹: 仅由 STM32 VS Code 扩展生成一次,用户拥有并管理此 CMake 文件
  • CMakePresets.json: 仅由 STM32 VS Code 扩展生成一次,用户拥有并管理此文件
  • STM32xxxxxxx_FLASH.ld: 链接器脚本。由 STM32 VS 代码扩展和用户共享所有权

2.1.3 导入 CMake 项目

        该功能允许用户将 CMake 项目(空项目或 STM32CubeMX 生成的项目)导入 VS Code。
        导入程序会检查项目是否已包含编辑/编译/调试所需的 json 文件。如果这些文件尚不存在,扩展程序将生成它们。

注意:
在 VS Code 中通过文件 -> 打开文件夹打开项目,而不是使用 STM32 VS Code 扩展的导入 CMake 项目,不会自动生成 json 文件。

        随后,用户会看到一个项目摘要,允许他们在单击 "导入项目 "或 "操作 "完成流程之前查看详细信息。

        成功导入后,VS Code 会为用户提供三种打开项目的选项:

  • 将项目添加到当前打开的文件夹中
  • 在新的 VS Code 会话中打开包含项目的文件夹
  • 在现有工作区中添加项目链接

        启动 STMCUFinder
        如果安装了 ST-MCU-FINDER,该按钮将打开 ST-MCU-FINDER,允许用户浏览各种 STM32 和 STM8 微控制器、微处理器、开发板和示例。有关 ST-MCU-FINDER-PC 的更多信息,请参阅 DB3190。

2.2 启动 STMCUFinder

        如果安装了 ST-MCU-FINDER,该按钮将打开 ST-MCU-FINDER,允许用户浏览各种 STM32 和 STM8 微控制器、微处理器、开发板和示例。有关 ST-MCU-FINDER-PC 的更多信息,请参阅 DB3190。

2.3 升级 STLINK 固件

        该功能允许用户通过 USB 端口升级设备或电路板的固件。

        提示:在首次调试启动之前,许多电路板都需要更新 ST-LINK 固件!

三、构建项目

3.1 选择构建目标

        要选择构建目标,首先要

  • 通过设置或使用键盘快捷键 Ctrl + Shift + P 访问 VS 代码命令调板
  • 搜索 CMake 预设并选择 "选择配置预设
  • 选择构建目标,完成整个过程。

3.2 添加构建目标

        要添加构建目标,首先要

  • 通过设置或使用键盘快捷键 Ctrl + Shift + P 访问 VS 代码命令调板
  • 搜索 CMake 预置并选择添加配置预置
  • 选择其中一个选项,然后按照其余步骤选择所需的构建目标

3.3 开始构建

        要构建项目,请单击 "构建 "选项,如下图所示。输出控制台将显示构建结果。

四、调试项目


        要快速了解项目调试,请观看我们的教程视频,标题为 "如何使用 STM32 VS Code Extension 进行调试",其中提供了针对新用户的分步说明。

4.1 启动调试

        launch.json 文件包含有关调试配置的信息。该扩展创建了两种默认调试配置:

  • Build & Debug Microcontroller - ST-Link)构建和调试微控制器 - ST-Link: 该选项允许你构建代码,将其加载到微控制器上,并启动调试。
  • Attach to a running target)附加到运行目标: 使用该选项,可以将调试器连接到正在运行的目标,而无需下载新固件。

        用户可通过编辑 launch.json 文件修改和创建自己的配置。有关创建新启动配置的更多详情,请参阅相关章节。

注意
我们建议在启动调试程序之前更新 STLINK 固件,以防止出现潜在问题。更多信息,请参阅 "无法启动调试 "一节。

        要启动调试,请选择启动配置并单击 "启动 "按钮。在此阶段,用户可以观察局部变量和全局变量、在观察堆栈中加入表达式、设置断点以及查看外设寄存器。

4.2创建新的启动配置

        要创建新的启动配置,请按照以下步骤操作:

  • 打开运行和调试
  • 访问 launch.json 文件
  • 点击添加配置
  • 选择所需的启动类型
  • 调整设置以匹配您的配置
  • 保存 launch.json 文件,添加新的启动配置

五、故障排除

5.1 构建相关问题

5.2 CMake 版本问题

        如果您有多个使用 CMake 的软件或工具,VS Code 可能会引用扩展所需的不正确版本。如果出现这种情况,您可能会遇到编译错误,提示信息为:需要 CMake 3.22 或更高版本。您正在运行 x.y.z 版本。

        要解决这个问题

  • 关闭 VS 代码
  • 访问启动系统上的环境变量设置,确认 STM32CubeCLT_PATH 设置正确
  • 重新启动 VS 代码并继续项目构建过程

5.3 清理构建配置

        在使用旧版本的 STM32CubeMX、STM32CubeCLT 或扩展本身编译项目的情况下,重建项目有时可能会失败。为防止或解决此问题,可通过设置或使用键盘快捷键 Ctrl + Shift + P 打开 VS Code 命令调板,然后搜索 CMake:删除缓存并重新配置。

5.4 无法启动调试

        如果调试器无法连接到电路板,请首先查看调试控制台,检查根本原因。如果看到 "初始化 STLINK 设备时出错。原因: 需要升级 STLINK 固件,只需点击升级 STLINK 固件功能即可解决此问题。

5.5 调试相关问题

        当涉及到大型复杂项目时,用户在尝试在自己的 PCB 上调试 STM32CubeMX 生成的应用程序时可能会遇到一些问题。

        我们的建议是创建一个新的空项目,其中只包含启动 MCU 所需的最小源文件集。如果该项目能在设备上编译、闪烁和调试,那么剩余的问题可能来自 STM32CubeMX 生成的代码、用户代码或选项字节不匹配。

六、将基于 STM32 的项目迁移到 VS Code v2.0.0

        将项目从一种工具迁移到另一种工具并不是一项复杂的任务,但确实需要遵循特定的步骤顺序。
        迁移所需的步骤数量因项目的原始起点和所依赖的工具而异。一般来说,迁移过程可分为三类。请确定最适合您项目的类别,以确保迁移成功。

  • 类别 1:项目使用 STM32CubeIDE/MX 创建,并由 1.0.0 版本的 STM32 VS Code 扩展管理
  • 类别 2:该项目使用 STM32CubeIDE/MX 创建,但未迁移至 STM32 VS Code 扩展的 1.0.0 版本
  • 类别 3:该项目不是使用 STM32CubeIDE/MX 生成的。在这种情况下,有两种可能的解决方案:
    • 如果项目使用 CMake,您可以通过单击 Import CMake project(导入 CMake 项目)按钮将其导入。
    • 如果项目不使用 CMake:
      • 单击 "创建空项目 "按钮创建一个空项目
      • 将所有文件和构建设置转移到基于 CMake 的空项目中

        要将基于类别 1 或类别 2 的项目迁移到新的 VS Code 解决方案,请按照以下步骤操作。

  1. 前提条件
    确保已安装 STM32CubeMX v6.11.0、STM32CubeIDE v1.15.0 和 STM32CubeCLT v1.15.0 或更新版本。
  2. 进行备份
    在更新任何工具或嵌入式软件时,建议创建还原点或备份副本,以防升级或迁移结果不理想。我们的建议是,要么在版本库中提交/标记,要么创建整个项目的备份。
  3. 更新 STM32CubeMX 和 STM32Cube 固件

    迁移可能需要升级到新版本的 STM32CubeMX,这可能会引入新的 HAL 驱动程序或代码生成中的细微变化。
    在继续将项目迁移到本地 CMake 项目之前,请确保更新后 STM32CubeIDE 中的构建和调试结果符合预期。为此

    3.1 使用 STM32CubeIDE v1.15.0 或更新版本打开项目
    3.2. 打开 STM32CubeMX ioc 文件,如果有新的 STM32Cube 固件包,则将项目迁移到该固件包上。 
    3.3. 重新生成代码  
    3.4. 使用 STM32CubeIDE 构建和调试项目  

    如果这些步骤已顺利完成,请关闭 STM32CubeIDE,因为迁移过程的剩余部分将在文件系统上进行。
  4. 删除旧文件
    由于新的 STM32CubeMX 和 VS Code 解决方案所引入的概念变化,用户有必要手动删除某些与项目相关的元数据。
    STM32CubeMX 会在后续步骤中再次生成相应的元数据,并通过 VS Code 扩展的更新版本进一步增强。代码本身保持不变。

    在继续删除元数据文件之前,我们建议创建项目的备份还原点。

    a. 如果您的项目仅通过 STM32CubeIDE 访问过,尚未使用 STM32 VS Code for 扩展打开,请删除以下文件:

    a.1. .settings/ : folder containing some metadata
    a.2. .cproject : file containing build configuraitons for STM32CubeIDE
    a.3. .project : file containing project natures and paths to c/h folders and/or files

    b. 如果您的项目以前使用过 STM32CubeIDE 和 STM32 VS Code 扩展 1.0.0,除前面提到的文件外,请删除以下文件:

    b.1. .vscode folder
    b.2. build folder
    b.3. cmake folder
    b.4. CMakeLists.txt
    b.5. CMakePresets.json
    b.6. nvcpkg_configuration.json

    删除指定文件后,我们将开始重新创建基于 CMake 的新构建结构。只有 STM32CubeMX 可以管理这个新结构。

  5. 使用 STM32CubeMX 生成 CMake 项目
    要继续迁移过程,请按照以下步骤操作:

    5.1. 启动 STM32CubeMX 6.11.0 或更新版本(单机模式,不在 STM32CubeIDE 内)  
    5.2. 加载要迁移的项目  
    5.3. 访问项目管理器面板  
    5.4. 将 "工具链/集成开发环境 "从 "STM32CubeIDE "切换到 "CMake"。 
    5.5. 点击 "GENERATE CODE(生成代码)"按钮 

    当选择 CMake 作为工具链时,STM32CubeMX CMake 生成器会生成以下文件:

    cmake\ 文件夹: 此文件夹包含 CMake 相关文件:
        stm32cubemx" 文件夹: 此文件夹包含 CMakeLists.txt。只有 STM32CubeMX 管理此文件
        Gcc-arm-none-eabi.cmake: 由 STM32CubeMX 生成后,用户可以编辑该文件
    CMakeLists.txt: 由 STM32CubeMX 生成后,用户拥有并管理此文件
    CMakePresets.json: 由 STM32CubeMX 生成后,用户拥有并管理此文件
    STM32xxxxxxx_FLASH.ld: 由 STM32CubeMX 生成的链接器脚本,表明 CMake 被选为工具链


    现在您可以通过命令行编译您的项目,方法是依次输入以下命令:

    PROJ_FOLDER$> cmake -B build -G Ninja
    PROJ_FOLDER$> cmake --build build -j

  6. 设置新的 VS Code 环境
    对于 VS Code 的新用户来说,使用 VS Code 中的配置文件概念将 STM32 环境沙盒到自己的配置文件中可能会很有帮助。点击此处了解更多信息。

    要将项目导入 VS Code,请按照以下步骤操作:

    6.1. 打开 VS Code 并安装新扩展 2.0.0 版,该版本可与新的 STM32CubeMX 6.11.0 或更高版本以及 STM32CubeCLT 1.15.0 或更高版本一起使用。
    6.2. 使用 "Import local project(导入本地项目)"按钮/命令,指向 STM32CubeMX 生成的项目文件夹。

    导入项目后,VS Code 扩展会自动生成以下文件:

    .vscode 文件夹: 包含元数据的文件夹:
    c_cpp_properties.json: 该文件可确保 C/C++ 编辑器索引正常工作
    extensions.json: 该文件提供额外的扩展建议
    launch.json: 此文件自动生成调试配置
    tasks.json: 此文件是执行某些任务(如加载 flash)的模板

    注意:

    首次在 VS Code 中打开项目时,可能会遇到一些提示,例如

    选择 CMake 预设: 选择调试预设
    安装 Better C++ Syntax: 高亮显示 C 和 C++ 语法的高效扩展程序
    配置 CMake 选项可见性: 使用设置中的 cmake.options 属性自定义视图

  7. 在新生成的 CMakeList.txt 文件中添加您的私有文件夹源路径
    如果您的项目包含私有文件夹,在 CMakeList.txt 文件中包含其路径至关重要。

  8. 如果需要,更新 CMake 文件以使用项目中已有的链接器脚本:
    这可以在 \cmake\gcc-arm-none-eabi.cmake 文件中修改。示例

    set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -T \"${CMAKE_SOURCE_DIR}/STM32F407VGTx_FLASH.ld\"")
  9. 构建和调试项目
    更多详情,请参阅 "构建项目 "和 "调试项目 "部分。

    对于高级调试功能,我们建议同时使用 STM32CubeIDE 作为调试器工具。更多详情,请参阅 "使用 STM32CubeIDE 进行高级调试"。

  10. 恭喜您!您现在已经设置好了。您可以随时在 STM32CubeMX 中更新配置。生成的 CMake 文件和源代码可在 VS Code 中正常运行。

七、提示和技巧

7.1 防止弹出窗口

        当您打开资源中提到的一些外部网站时,VS Code 可能会提示您,因为它不会自动信任这些网站。
        要避免这种提示,请打开 "配置受信任的域 "并信任所需的域。

7.2 使用 STM32CubeIDE 进行高级调试

        如果您需要 VS Code 中不具备的高级调试功能,您可以将 STM32CubeIDE 用作 VS Code 的辅助调试工具。
        为此,您需要将项目创建的 elf 文件从 VS Code 导入 STM32CubeIDE。这样,您就可以使用 STM32CubeIDE 的所有基本和高级调试功能。尽管没有导入 C/C++ 代码,源代码查找仍可正常运行。通过这种方法,您可以结合两种工具的优势,使用 VS Code 进行编辑、编译和调试,同时使用 STM32CubeIDE 的高级调试功能。

        要开始使用,请打开 STM32CubeIDE 并选择文件 > 导入 > C/C++ > STM32 Cortex®-M 可执行文件。

        然后,浏览并选择 elf 文件,并指定目标设备。

        如有必要,请编辑启动配置并点击调试。

        就是这样!现在,您可以使用 STM32CubeIDE 的高级调试功能了。

7.3 保留已安装的多个 STM32 VS Code 扩展程序版本:

        要在安装最新版本的同时保留以前版本的 STM32 VS 代码扩展,需要按照以下步骤创建新的配置文件:

  • 导航至 VS Code 配置文件并创建新配置文件
  • 为配置文件指定一个名称,然后选择 "创建 "完成该过程

  • 创建配置文件后,继续安装最新版本的 STM32 VS Code 扩展程序
  • 现在,您有两个配置文件:一个包含 v1.0.0,另一个包含 v2.0.0

         对于 VS Code 的新用户,请在此处阅读有关配置文件的更多信息。

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

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

相关文章

线下预约线下消费万能DIY小程序源码系统 带完整安装代码包

在数字化时代&#xff0c;线上线下融合的消费模式已成为新趋势。为满足广大商家对于个性化预约系统的需求&#xff0c;我们隆重推出了“线下预约线下消费万能DIY小程序源码系统”。该系统不仅具备完整的安装代码包&#xff0c;还提供了丰富的定制功能&#xff0c;助力商家轻松搭…

【大比武01】AIGC赋能档案文创设计的尝试

关注我们 - 数字罗塞塔计划 - 随着科技的飞速发展&#xff0c;AI技术逐渐深入我们的工作与生活&#xff0c;特别是随着2022年底ChatGPT的横空出世&#xff0c;AIGC&#xff08;Artificial Intelligence Generated Content&#xff0c;内容生成式人工智能&#xff09;开始登上历…

Covalent引入五个新网络运营商,提升去中心化特性和数据安全性

为了进一步扩大运营商基础以并践行去中心化网络基础设施的宗旨&#xff0c;Covalent Network&#xff08;CQT&#xff09;在网络中引入了五个新的区块样本生产者&#xff08;BSPs&#xff09;角色。该举措不仅重申了 Covalent Network&#xff08;CQT&#xff09;对社区驱动协议…

20基础解决-buuctf-1.RSA1

2.buuctf-1.RSA1 RSATool2v17工具的使用 打开RSA Tool 1.Number Base 设置为十进制 2.注意&#xff1a;Public Exponent这里要使用16进制的数&#xff0c;如果公钥e17的话&#xff0c;就应该填入十六进制的11 3.给出p,q,e的话直接填入&#xff0c;再点击Calc.D,获得d 4.给出…

【第6节课笔记】LagentAgentLego

Lagent 最中间部分的是LLM&#xff0c;即为大语言模型模块&#xff0c;他可以思考planning和调用什么action&#xff0c;再将其转发给动作执行器action executer执行。 支持的工具如下&#xff1a; Arxiv 搜索 Bing 地图 Google 学术搜索 Google 搜索 交互式 IPython 解释器 IP…

C++ | Leetcode C++题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size(), n matrix[0].size();int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 l…

安卓玩机工具----一键备份手机分区 防止全檫除或者格机导致安全数据分区丢失

工具说明; 目前玩机root后有很多格机脚本。模块等等误刷会导致基带信号等等问题&#xff0c;在前面的博文中我有介绍过备份主要数据分区的重要性 。其实对于不了解root和不安装有些模块 外挂等等需要的友友不建议对手机进行root。root后对于手机安全性会有所降低。对于玩家来说…

信创 | 中国信创建设的历程与未来展望!

中国信创建设的历程与未来展望可以从多个维度进行分析。首先&#xff0c;从发展历程来看&#xff0c;中国信创产业的发展可以分为几个阶段。根据不同的资料来源&#xff0c;这些阶段的划分有所不同&#xff0c;但大体上可以概括为起步、试点、快速发展等关键时期。 起步阶段&am…

医疗器械软件如何生成符合FDA要求的SBOM文件?

在当今这个高度互联的世界&#xff0c;医疗器械的安全性和可靠性对于保障公众健康至关重要。FDA作为美国食品和药物的主要监管机构&#xff0c;长期以来一直致力于确保医疗器械的安全性和有效性。 2023年9月27日&#xff0c;美国食品和药品监督管理局&#xff08;后续简称FDA&…

文本批量操作实例:如何实现文本批量拆分?实用方法与技巧分享

在文本处理和数据分析的过程中&#xff0c;我们经常会遇到需要批量拆分大量文本数据的情况。文本批量拆分能够大大提高工作效率&#xff0c;减少重复劳动。下面&#xff0c;我们将通过一个实例来介绍如何实现文本批量拆分&#xff0c;并分享一些实用方法与技巧。 一、实例背景 …

ESP32S3各个管脚使用需要注意的情况说明:

想使用ESP32S3做个控制电路&#xff0c;管脚使用情况自己整理了一下&#xff0c;记录一下&#xff0c;免得后面又忘记了&#xff0c;有不对之处望帮助更正&#xff1a; IO0和IO46先要说明一下&#xff1a;以前只注意IO0是启动刷机的时候用的&#xff0c;低电平时启动是串口刷机…

MT2050 矩阵01变

注意&#xff1a; 输入是直接输入了一行&#xff0c;所以不能使用for i{ for j {} }&#xff0c;可以使用string 读一行然后挨个分析。 使用前缀和。 代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N 105; int n, m; int b[N][N]; strin…

如何在Hostease的Linux虚拟主机上永久移除WordPress网站

最近有遇到客户咨询如何移除Linux虚拟主机上的WordPress网站的&#xff0c; 因为原先的站点长时间不更新&#xff0c;被恶意篡改&#xff0c;跳转到了一个博彩网站上&#xff0c;本身网站也比较旧了&#xff0c;客户也不准备修复&#xff0c;准备重新建站。但是又怕移除不干净&…

【Django学习笔记(十)】Django的创建与运行

Django的创建与运行 前言正文1、安装Django2、创建项目2.1 基于终端创建项目2.2 基于Pycharm创建项目2.3 两种方式对比 3、默认项目文件介绍4、APP5、启动运行Django5.1 激活App5.2 编写URL和视图函数对应关系5.3 启动Django项目5.3.1 命令行启动5.3.2 Pycharm启动5.3.3 views.…

Re71:读论文 Sequence to Sequence Learning with Neural Networks

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;Sequence to Sequence Learning with Neural Networks ArXiv下载地址&#xff1a;https://arxiv.org/abs/1409.3215 本文是2014年NeurIPS论文&#xff08;那时候这个会还叫NIPS&#xf…

共享WiFi项目加盟骗局:共享WiFi贴码收益真的月入过万?

如今每个人的手机都是智能手机&#xff0c;我们几乎随时随地都需要网络的陪伴。而随着共享经济的概念深入人心&#xff0c;一种名为“共享WiFi贴码”的新兴事物逐渐走入了我们的视线。据说通过这种方式&#xff0c;人们可以实现轻资产创业&#xff0c;甚至有人声称能借此达到月…

ubuntu_Docker安装配置

什么是docker? Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows操作系统的机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有…

百面算法工程师 | python解释器基础问答

本文给大家带来的百面算法工程师是深度学习python解释器面试总结&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们还将介绍一些常见的python用法&#xff0c;并提供参考的回答及其理论基础&…

微生物群落构建(community assembly)

Introduction Zhou, J. & Ning, D. Stochastic Community Assembly: Does It Matter in Microbial Ecology? Microbiol Mol Biol Rev 81, e00002-17 (2017). This review is very comprehensive (1)&#xff01; 周集中老师实验室的长期研究兴趣集中在从基因组到生态系统…

史上最简单给大模型注入新知识的方法

《史上最简单给大模型注入新知识的方法》 image-20240508093410856 先执行 pip install --upgrade openai 。 from openai import OpenAI# 加载.env 文件到环境变量from dotenv import load_dotenv, find_dotenv_ load_dotenv(find_dotenv())# 初始化 OpenAI 服务。会自动从环…