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

工程建立 - LI,Yi

1. 软件安装

视频选集(3/50)[2-1] 软件安装

注.跟着视频走就可以了,以下是一些注意事项

  1. 弹出的Pack Installer窗口是用来安装器件支持包的

image-20250728132321366

  1. 该支持包只有Keil5需要安装,之前的版本不需要

  2. 支持包选项出现的原因:ARM的芯片型号非常多,同时支持所有型号的芯片,会让软件体积过大;因此将芯片的器件支持包独立出来,用户只需安装所开发芯片对应的软件支持包即可

    如果没有安装支持包,新建工程时找不到相应的器件型号

    image-20250728133311382

    image-20250728133335956

    image-20250728133358756

2. STM32的开发方式

视频选集(3/50)[2-2] 新建工程

  • 基于寄存器的方式:用程序直接配置寄存器,来实现想要的功能

    优点:直接、效率高。但STM32结构复杂、寄存器多,不推荐该方式

  • 基于标准库的方式:使用ST官方提供的封装好的函数,通过调用这些函数来间接地配置寄存器

    本课程使用该方式进行开发

  • 基于HAL库的方式:可用图形化界面快速配置STM32

    这种方式隐藏了底层逻辑

3. 新建工程

2.1 开发环境与器件

  • 开发环境:Keil MDK5.36
  • 开发芯片:STM32F103C8T6
  • 配置材料:STM32库函数压缩包STM32F10x_StdPeriph_Lib_V3.5.0.zip

2.2 环境配置

(1) 固件库介绍

  • Libraries:库函数的文件

  • Project:官方提供的工程示例和模板

  • Utilities:官方评估板的相关例程

    【评估板】官方用STM32做的一个小电路板,用来评测STM32

  • Release_Notes.html:库函数的发布文档

  • stm32f10x_stdperiph_lib_um.chm:库函数的使用手册

image-20250728134508760

(2) 创建工程(寄存器开发)

  1. 创建一个总文件夹STM32Project,用于收纳所有的工程文件

  2. ./STM32Project的路径下,创建2-1 STM32工程模板(寄存器开发)文件夹,用来存放本次工程文件

  3. 打开Keil5,创建新工程文件

    image-20250728175027334

  4. 选择相应的路径;給工程命名;保存

    image-20250728175217269

  5. 选择开发芯片的型号

    image-20250728175428797

    image-20250728175515399

  6. 这里会弹出Keil软件的新建工程小助手,它可以帮助快速新建工程。暂时不需要用到这个,关掉即可

    image-20250728175657843

  7. 到这一步,我们已经创建了一个空工程文件

    image-20250728175834869

    image-20250728180036285

  8. .\STM32Project\2-1 STM32工程模板路径下,创建Start文件夹,用以存放必要的配置文件。需要复制粘贴到.\STM32Project\2-1 STM32工程模板\Start路径下的文件有:

    • .\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm路径下的所有文件:STM32的启动文件

      STM32的程序从启动文件开始执行

    • .\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32路径下的stm32f10x.h:STM32的外设寄存器描述文件

      作用和51单片机的头文件REGX52.H一样,描述STM32有哪些寄存器和其对应的地址

    • .\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32路径下的system_stm32f10x.csystem_stm32f10x.h:用来配置时钟

    • .\Libraries\CMSIS\CM3\CoreSupport路径下的core_cm3.c和core_cm3.h:Cortex-M3内核寄存器描述文件

    image-20250728182214560

  9. 把配置文件添加到Keil工程文件中

    • Source Group 1重命名为Start。右键Start添加文件

      image-20250728182631476

    • 首先添加启动文件。启动文件有很多类,只能添加其中一个,本项目开发器件型号对应的启动文件为startup_stm32f10x_md.s

      image-20250728183346112

    • 然后将启动文件以外的其他文件都添加进来。添加完点击Close关闭窗口

      image-20250728183535390

      这些文件都是STM32中最基本的文件,不需要我们进行修改,添加进来即可。文件图标上的黄色钥匙,指示它是一个只读文件

  10. 在Keil工程文件中添加配置文件的头文件路径

    若未添加头文件路径,软件会报错:找不到.h文件

    image-20250728184036014

    image-20250728184116546

    image-20250728184151575

    image-20250728184209994

    这里添加完,会变成一个较短的相对路径

    image-20250728184255043

  11. .\STM32Project\2-1 STM32工程模板路径下,创建User文件夹,用以存放main.c文件。

    image-20250728184548168

  12. Keil工程文件中右键Target1,创建组,对应命名为User

    image-20250728184717312

    image-20250728184751884

  13. 右键User,创建新文件

    image-20250728184910493

  14. 在弹出窗口中选择文件类型、命名为main.c、选择存放路径

    image-20250728185055721

    image-20250728185256237

    image-20250728185320263

  15. 在main.c文件中,右键,插入头文件

    image-20250728185720789

  16. 在main函数里写一个空的死循环

    注意:任何文件的最后一行必须是空行,否则编译后会弹警告

    image-20250728185952851

  17. 进行编译

    image-20250728190108885

  18. 编译后,发现有报错

    image-20250728190203700

  19. 阅读Error中的描述,发现是编译器的问题:编译器版本过新,导致某些语句不被支持。需要更换编译器版本

    image-20250728190905277

    image-20250728190942684

  20. 再编译一次,显示0 Error。工程创建完成

    当前工程未添加STM32的库函数,所以仍是一个基于寄存器开发的工程文件

    image-20250728191110037

    image-20250728191709363

  21. 本项目使用ST-LINK下载器将工程文件烧录到开发板上,需要进行相应的配置

image-20250728200843243

  1. 设置下载程序后会立即复位并执行

    如果没有配置这一项,下载程序后还需手动按开发板上的复位键来执行新烧录的程序

image-20250728201117665

image-20250728201306000

image-20250728214424195

image-20250728201451649

image-20250728200929853

(3) 创建工程(标准库开发)

  1. 复制2-1 STM32工程模板(寄存器开发)文件,粘贴副本,重命名为2-3 STM32工程模板(标准库开发)文件

  2. .\STM32Project\2-3 STM32工程模板(标准库开发)路径下,创建Library文件夹,用来存放库函数。需要复制粘贴到.\STM32Project\2-3 STM32工程模板(标准库开发)\Library路径下的文件有:

    • .\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src路径下的所有文件
    • .\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc路径下的所有文件
  3. 需要复制粘贴到.\STM32Project\2-3 STM32工程模板(标准库开发)\User路径下的文件有:

    • .\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template路径下的stm32f10x_conf.h文件:用来配置库函数头文件的包含关系。且包含用来参数检查的函数定义
    • .\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template路径下的stm32f10x_it.cstm32f10x_it.h文件:用来存放中断函数
  4. 打开工程文件,添加配置文件

    • 创建Library组。右键Library添加文件

      image-20250728222830382

      image-20250728223148628

    • 右键User添加文件

      image-20250729010449324

  5. 宏定义

    • 右键头文件,打开它

      image-20250729010654095

    • 向下拉,滑到8296行。这是一个条件编译语句,意思是:只有定义了字符串“USE_STDPERIPH_DRIVER”,语句#include "stm32f10x_conf.h"才会生效

      image-20250729010952390

    • 进行宏定义;并添加头文件的路径

      image-20250729011519885

  6. 点击编译,编译成功。基于标准库开发的工程文件创建完成

    注.Start和Library中的文件都是只读的,只有User中的文件需要手动修改

    image-20250729012202301

http://www.sczhlp.com/news/825.html

相关文章:

  • Java基础语法学习 ———— Day1
  • 阶跃星辰端到端语音模型 Step-Audio 2:深度思考+音色切换;11Labs 对话式 AI 增加 WebRTC支持丨日报
  • 子串的故事(2) - 2025“钉耙编程”中国大学生算法设计暑期联赛(2)T4 题解
  • 【比赛记录】2025CSP-S模拟赛28
  • Apereo CAS 4.1 反序列化命令执行漏洞 (复现)
  • 第十四篇
  • 《大道至简——软件工程实践者的思想》读后感
  • DE_aemmprty 题单合集(分类)
  • 假期学习
  • C++对象模型
  • 软工7.28
  • P2910 [USACO08OPEN] Clear And Present Danger S (Floyd算法)
  • 读《构建之法》:我的C/C++学习反思
  • Qt播放音频,支持进度条,设置语速,播放暂停
  • goethereum-账户 - Charlie
  • 使用监督学习训练图像聚类模型
  • java第二十八天
  • 二叉树 (动态规划)
  • 1 引言(1.1 - 1.5)
  • 支持向量机算法
  • 决策树算法
  • 逻辑回归算法
  • static关键字--main函数
  • 长文!推荐‑搜索‑广告系统评估指标与损失函数技术报告
  • 集成学习算法
  • K 近邻算法
  • CVE-2020-13945 Apache APISIX 默认密钥漏洞 (复现)
  • 1 引言(1.6)
  • 可并堆(左偏树)
  • 7-28