stm32工程创建笔记

文章详细介绍了STM32的三种开发方式:寄存器开发、基于标准库和HAL库开发,以及各自的优缺点。同时,阐述了启动文件的选择、外设和内核寄存器的描述文件、工程文件夹结构和库函数的添加步骤,强调了工程配置中头文件包含、宏定义和路径设置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发方式

寄存器开发:类似于61开发,直接配置寄存器,最底层、最直接、效率较高
    //STM32结构复杂,寄存器较多,不建议使用
基于标准库(库函数):使用ST官方提供的函数,通过函数间接配置寄存器
    //推荐,可以配置寄存器、提高开发效率
基于HAL库:利用图形化界面快速配置STM32,适合快速上手STM32
    //方便快捷、隐藏底层逻辑,不适合新手

模板配置

文件位置

Libraries:库函数文件,建立工程使用
Project:官方提供工程实例和模板
Utilities:官方评估板,测试STM32
Release_Notes.html:库函数发布文档,版本说明
stm32f10x_stdperiph_lib_um.chm:使用手册,使用库

路径添加必要文件

启动文件

源路径:STM32入门教程资料 \ 固件库\ STM32F10x_StdPeriph_Lib_V3.5.0 \ Libraries \ CMSIS \ CM3 \ DeviceSupport \ ST \ STM32F10x \ startup \ arm
作用:STM32程序从启动文件开始执行
目标路径:project/Start(新建)

启动文件选择

缩写释义Flash容量型号
LD_VL小容量产品超值系列16~32KF100
MD_VL中容量产品超值系列64~128KF100
HD_VL大容量产品超值系列256~512KF100
LD小容量产品16~32KF101/102/103
MD中容量产品64~128KF101/102/103
HD大容量产品256~512KF101/102/103
XL加大容量产品大于512KF101/102/103
CL互联型产品F105/107

外设寄存器描述文件

源路径:STM32入门教程资料 \ 固件库\ STM32F10x_StdPeriph_Lib_V3.5.0 \ Libraries \ CMSIS \ CM3 \ DeviceSupport \ ST \ STM32F10x
作用:
    stm32f10x.h相当于51单片机头文件,描述寄存器和对应的地址
    system.c/.h:配置时钟,主频72MHz由它来配置
目标路径:project/Start(新建)

内核寄存器描述文件

注意:STM32由内核和内核外围设备组成,内核寄存器描述文件和外围设备描述文件不在一起
源路径STM32入门教程资料 \ 固件库\ STM32F10x_StdPeriph_Lib_V3.5.0 \ Libraries \ CMSIS \ CM3 \ CoreSupport
CM3含义:Cortex-M3
目标路径:project/Start(新建)

工程添加必要文件

1.改名:Source Group改为Start
2.右键ADD Existing
3.打开Start,文件过滤器选择All files
4.添加启动文件,只能添加一个,根据FLASH的大小.判断:
    小容量 ld :FLASH ≤32K
    中容量 md :64K ≤ FLASH ≤ 128K
    大容量 hd :256K ≤ FLASH
5.添加剩余.c与.h文件
//文件带有钥匙的是只读文件
6.添加文件路径
    魔术棒——>C/C++——>include Paths——>三个点——>添加start

添加main

1.工程下新建User,存放main
2.Target1右击,Add Group添加组,New Group改名为User
3.右击,Add New添加新文件,添加C文件,名字为main,路径改为User
4.添加头文件,代码编写框,右击第一行,insert include file,选择头文件
5.加入main函数,int返回值,void参数
注意:最后一行必须是空行,否则会报警告

添加库函数

源路径:
    1.库函数源文件:STM32入门教程资料 \ 固件库 \ STM32F10x_StdPeriph_Lib_V3.5.0 \ Libraries \ STM32F10x_StdPeriph_Driver \ src
    2.库函数头文件:STM32入门教程资料 \ 固件库\ STM32F10x_StdPeriph_Lib_V3.5.0 \ Libraries \ STM32F10x_StdPeriph_Driver \ inc
目标路径(全部):project/Library(新建)
分类:
    misc:内核库函数
    其他:内核外设库函数
工程添加库文件:
    1.Target1右击,Add Group添加组,New Group改名为Library
    2.右键ADD Existing,library,文件类型all,全选添加

配置头文件包含关系

源路径:STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
功能:
    conf:检测头文件包含关系,用来参数检查函数定义
    it:存放中断函数
目标路径:porject/User
工程中添加:右键ADD Existing,library,文件类型all,添加conf、it.c、it、h

配置宏定义

1.右键打开头文件,找到8296-8298行条件编译
2.赋值ifdef后字符串,打开工程选项(魔法棒),选择C/C++,粘贴到Define

添加路径

打开工程选项(魔法棒),选择C/C++,include paths,添加User和Library路径

总结

1.建立工程文件夹,Keil中新建工程,选择型号
2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹
3.工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里
4.工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
5.工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER
    USE:使用
    STD:标准
    PERIPH:外设
    DRIVER:驱动
6.工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run
注意:
    需要用的文件要复制到工程文件夹中,不要添加工程文件夹外文件,工程文件夹外文件改变位置,外面文件一旦挪动位置,工程里找不到文件,保证工程独立性

文件介绍

主动执行部分

startup

作用:程序执行最基本的文件
组成:
    中断向量表
    中断服务函数
程序入口:复位中断
注意:
    在main函数前,有需要执行的东西

复位中断

复位中断函数工作:
    1.调用SystemInit
    2.调用main函数
system作用:
    设置微控制器启动、初始化嵌入式闪存接口、锁相环、更新系统内核的时钟变量,仅在复位后需要调用

其他中断

功能:达到出发条件自动执行中断
定义位置:stm32fx_it
ST官方建议:将自定义中断写入stm32f10x_it.c   //在哪儿定义写到哪儿即可

被动执行部分

//相当于STM32资源
stm32f10x.h     外设寄存器描述
core_cm3.c/.h   内核寄存器描述
stm32f10x_conf.h    库函数配置
其他              库函数

调整字体

工具:扳手,configuration
字号调整:
    Colors&Fonts——>C/C++——>Font——>Courler New
    Colors&Fonts——>ASM——>Font——>Courler New
注释汉语:
    Editof——>Encoding——>UTF-8
缩进:
    Editof——>C/C++ Files——>Tab size

中间文件删除

keilkill.bat:批处理文件
作用:删除编译后Object中的中间文件

学习资源:

        哔哩哔哩江科大自化协STM32视频资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值