差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
stm32:theverystarter [2024/12/17 15:10] – laythy | stm32:theverystarter [2024/12/19 11:44] (当前版本) – laythy | ||
---|---|---|---|
行 3: | 行 3: | ||
在这里我用标准库函数法,因为ST公司封装的标准库很好用。寄存器法顾名思义,直接操作寄存器,就像开发51单片机那样,费时费力,较难。 | 在这里我用标准库函数法,因为ST公司封装的标准库很好用。寄存器法顾名思义,直接操作寄存器,就像开发51单片机那样,费时费力,较难。 | ||
- | 软件安装和配置(下载pack): | + | 软件安装和安装芯片pack: |
- | 安装:keil 5 MDK,arm单片机开发用。 | + | |
keil5 MDK和keil5 C51版本可以共存,如果前面学C51安装了keil5 C51,直接安装到同一个文件夹即可。 | keil5 MDK和keil5 C51版本可以共存,如果前面学C51安装了keil5 C51,直接安装到同一个文件夹即可。 | ||
- | | + | |
- | 注意,服务器在国外,国内下载可能要十多分钟甚至下载失败。下载失败会显示一个链接(以.pack结尾),其实就是这个。直接复制到浏览器打开下载,然后双击打开安装即可。 | + | |
+ | 注意,服务器在国外,国内下载可能要十多分钟甚至下载失败。 | ||
+ | | ||
新建project的前置操作——\\ | 新建project的前置操作——\\ | ||
行 15: | 行 17: | ||
3. 再找到.\Libraries\CMSIS\CM3\CoreSupport文件夹,把里面.h和.c文件(共2个文件)复制到一个刚才的那个文件夹中(待用)。 | 3. 再找到.\Libraries\CMSIS\CM3\CoreSupport文件夹,把里面.h和.c文件(共2个文件)复制到一个刚才的那个文件夹中(待用)。 | ||
4. 再找到.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹,把里面.h和.c文件(共3个文件)复制到一个刚才的那个文件夹中(待用)。 | 4. 再找到.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹,把里面.h和.c文件(共3个文件)复制到一个刚才的那个文件夹中(待用)。 | ||
- | 5. 接下来,为了后续所有新建project的便捷,刚才的文件夹命名为Start。在今后所有新建project后,把Start文件夹复制到project目录下。并且在keil软件,点击魔术棒(options for target...),C/ | + | 5. 接下来,为了后续所有新建project的便捷,刚才的文件夹命名为Start。 |
+ | | ||
新建project: | 新建project: | ||
1. 新建project同C51,弹出manage run-time environment(新建工程小助手)关闭即可。 | 1. 新建project同C51,弹出manage run-time environment(新建工程小助手)关闭即可。 | ||
- | 2. 然后在keil5 mdk软件右侧Target1目录下新建Start,添加: | + | 2. 然后在keil5 mdk软件右侧“设计树”——Target1下新建Start。 |
- | | + | |
+ | | ||
core_cm3.c | core_cm3.c | ||
core_cm3.h | core_cm3.h | ||
行 26: | 行 30: | ||
system_stm32f10x.c | system_stm32f10x.c | ||
system stm32f10x.h” | system stm32f10x.h” | ||
+ | 其中startup_stm32f10x_md.s适用于flash用量64K-128K、型号STM32F101/ | ||
3. 在项目根目录新建文件夹/ | 3. 在项目根目录新建文件夹/ | ||
+ | {{: | ||
写点灯代码 —— 第一次编译就遇到的问题: | 写点灯代码 —— 第一次编译就遇到的问题: | ||
B站江科大stm32课--【2-2】新建工程-报错4个error解决方法:下载v5版本的arm编译器(我用的ARMCompiler_506_Windows_x86_b960可以)。 | B站江科大stm32课--【2-2】新建工程-报错4个error解决方法:下载v5版本的arm编译器(我用的ARMCompiler_506_Windows_x86_b960可以)。 | ||
行 34: | 行 40: | ||
项目内 —— 包含标准外设库文件: | 项目内 —— 包含标准外设库文件: | ||
- | 1. 打开上面下载的STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src文件夹。 | + | 1. 打开上面下载的STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src文件夹和\inc文件夹。 |
- | 其中misc.c(英语misc,miscellaneous:各种各样的; | + | 其中misc.c(英语misc,miscellaneous:各种各样的; |
+ | | ||
+ | | ||
2. 还没完! | 2. 还没完! | ||
在STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template文件夹中,找到: | 在STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template文件夹中,找到: | ||
行 45: | 行 53: | ||
3. 在main.c函数的 #include " | 3. 在main.c函数的 #include " | ||
看到 #ifndef USE_STDPERIPH_DRIVER那块。意思是你要定义了USE_STDPERIPH_DRIVER这个字符串,下面的# | 看到 #ifndef USE_STDPERIPH_DRIVER那块。意思是你要定义了USE_STDPERIPH_DRIVER这个字符串,下面的# | ||
- | 复制 USE_STDPERIPH_DRIVER | + | 复制 USE_STDPERIPH_DRIVER ,打开keil,点击魔术棒,C/ |
- | 并在魔术棒(options for target...),C/ | + | 并在魔术棒(options for target),C/ |
+ | 检查文件个数、检查include path、检查USE_STDPERIPH_DRIVER,并编译(首次稍微有点慢): | ||
+ | Library文件夹一共46个文件(23个.c,23个.h) | ||
+ | User文件夹一共4个文件(两个it结尾的.c.h,conf结尾的.h,还有main.c) | ||
+ | Start文件夹一共14个文件(上面在“启动文件”提到具体是什么) | ||
+ | main.c 只写个最简单的程序,比如return 0; | ||
+ | 然后编译。 | ||
+ | 通过st-link烧录程序和debug: | ||
+ | 魔术棒(options for target...),Debug选项,右侧栏目第一个use: | ||
+ | 再在右侧settings-> | ||
+ | (不勾选下载程序后要点板子上的复位按钮才能运行)。 | ||
+ | |||
+ | 忽略用stlink下载时提示的升级固件(山寨的stlink往往会提示这个),解决方法 https:// |