1.开发环境搭建

1. MDK5安装

1.MDK5的安装

  1. 安装包:![RH)V0(}}H8$5K](B$I%J`]H.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629898040660-7c454b22-a59e-4baf-8516-9a00a43d7fe3.png#clientId=u2673c0ec-2be0-4&from=ui&height=23&id=ub95758f4&margin=%5Bobject%20Object%5D&name=RH%29V0%28%7D%7DH8%245K%5D%28B%24I%25J%60%5DH.png&originHeight=30&originWidth=660&originalType=binary&ratio=1&size=4899&status=done&style=none&taskId=u2d917b07-1c6d-4d01-b048-f0aa184d9f4&width=500)<br /> 也可在官网下载路径:[http://www.keil.com/demo/eval/arm.htm](http://www.keil.com/demo/eval/arm.htm)<br /> 要注意安装路径不能包含中文,最好不要有空格和特殊字符。

2.Pack的安装

  1. 安装包:![RH)V0(}}H8$5K](B$I%J`]H.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629898547733-2190fcb7-4df3-42e6-b7cd-b1de82a4f7b8.png#clientId=u2673c0ec-2be0-4&from=ui&height=23&id=u33cffc6f&margin=%5Bobject%20Object%5D&name=RH%29V0%28%7D%7DH8%245K%5D%28B%24I%25J%60%5DH.png&originHeight=30&originWidth=660&originalType=binary&ratio=1&size=4899&status=done&style=none&taskId=ua9c1a891-5eaa-46db-9d9f-017a7b6a575&width=500)<br /> 安装包也可在此路径下载:[https://www.keil.com/dd2/pack/](https://www.keil.com/dd2/pack/)

3.软件破解

  1. 利用注册机![QQ图片20210825213928.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629898786073-80cb1ff5-d224-454c-a26f-37d6d68152c4.png#clientId=u2673c0ec-2be0-4&from=ui&id=ued41f73e&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825213928.png&originHeight=27&originWidth=133&originalType=binary&ratio=1&size=1351&status=done&style=none&taskId=u76e925db-0ab4-4522-91be-e84369a9419)可完成注册

4.参考步骤

  1. 里面是软件管家的详细步骤,可参考:[https://mp.weixin.qq.com/s/oy1UDezuPBAebEb3oHDrVA](https://mp.weixin.qq.com/s/oy1UDezuPBAebEb3oHDrVA)

2.USB串口驱动安装

  1. ![QQ图片20210825214750.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629899289469-82afe5ad-a3d3-4954-962b-7cd2e75f6936.png#clientId=u2673c0ec-2be0-4&from=ui&height=140&id=uda70ed25&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825214750.png&originHeight=177&originWidth=822&originalType=binary&ratio=1&size=19934&status=done&style=none&taskId=u105315d3-e1bf-4f34-9c75-4f0645c89c5&width=650)<br /> 双击选中程序即可,Win10系统如果失败的话需要连接开发板,一般情况下电脑会自动下载驱动,若没有再进行安装。

3.ST-LINK驱动安装

  1. 由于没有购买JLINK驱动,所以我上网查询资料找了ST-LINK驱动代替。<br /> [https://blog.csdn.net/ybhuangfugui/article/details/52597133](https://blog.csdn.net/ybhuangfugui/article/details/52597133),该网址中有详细的介绍和安装方法。

2.程序下载方法(ISP串口下载)

  1. 参考资料:<br />** 战舰《STM32F1开发指南-库函数版本》-3.4.2**<br />** miniSTM32不完全手册-库函数版本》-3.4.2**

1. 硬件连接:image.png

  1. 注意:STM32ISP下载,只能使用串口1,就是对应串口发送接收引脚PA9,PA10。不能使用其他串口(例如<br /> 串口2: PA2,PA3)用来ISP下载。

2.下载工具配置(FlyMcu)

  1. ![QQ图片20210825220941.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629900598499-aeb67e93-4f25-4f6a-b6ed-886ae125f3d7.png#clientId=u2673c0ec-2be0-4&from=ui&height=151&id=u2005acab&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825220941.png&originHeight=205&originWidth=817&originalType=binary&ratio=1&size=23355&status=done&style=none&taskId=u8956f9e1-ba2c-4751-8af1-26fe376d189&width=600)<br />![QQ图片20210825222045.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629901265959-697b3f9d-7bff-4053-afa1-7e0446407634.png#clientId=u2673c0ec-2be0-4&from=ui&id=u360c8444&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825222045.png&originHeight=629&originWidth=1094&originalType=binary&ratio=1&size=113389&status=done&style=none&taskId=uc4c36cec-0909-407c-ac48-37dcf78ce35)

3.STM32的启动模式

  1. 设置启动模式: STM32直接通过两个引脚Boot0Boot1设置启动模式<br />![image (1).png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629901416939-c9f88a49-c2b5-4cd9-a02a-a38b2b49869d.png#clientId=u2673c0ec-2be0-4&from=ui&id=u2bf1b37a&margin=%5Bobject%20Object%5D&name=image%20%281%29.png&originHeight=220&originWidth=1173&originalType=binary&ratio=1&size=177955&status=done&style=none&taskId=udfa34db9-e2f6-4649-9c00-ba7e7913d7e)<br /> ISP下载一般步骤:<br /> Boot0接3.3,Boot1接GND<br /> 按复位按键,实现下载<br /> 程序执行的一般步骤:<br /> mcuisp/flymcu勾选“编程后执行”,发送命令直接从FLASH启动<br /> Boot0接GND, Boot1接任意,按一次复位

3.JLINK程序下载

  1. 参考资料:<br />** 战舰/精英STM32F1开发板:《STM32F1开发指南·库函数版本》-3.4.3NJTAGISWD程序下载与调试**<br />** miniSTM32F1开发板:《STM32不完全手册-库函数版本》 -3.4.3JLINK下载与调试**<br /> <br />![image (4).png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629902305016-3a2ce9bb-4629-47d2-9398-ed5c20ba6f04.png#clientId=u2673c0ec-2be0-4&from=ui&height=488&id=u2d8acbd1&margin=%5Bobject%20Object%5D&name=image%20%284%29.png&originHeight=744&originWidth=914&originalType=binary&ratio=1&size=726872&status=done&style=none&taskId=u45a72465-ef27-49e2-bb54-d1e40dc8589&width=600)<br />![image (3).png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629902329031-2cdc4576-f3ed-480c-9d66-8620bd52abb6.png#clientId=u2673c0ec-2be0-4&from=ui&height=452&id=u2ec458a8&margin=%5Bobject%20Object%5D&name=image%20%283%29.png&originHeight=672&originWidth=892&originalType=binary&ratio=1&size=469051&status=done&style=none&taskId=ud3616f5c-719b-4375-910c-5158c8615f0&width=600)![image (2).png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629902355411-4c79b118-1f92-413b-8041-b22d75e2caf4.png#clientId=u2673c0ec-2be0-4&from=ui&height=366&id=uce135652&margin=%5Bobject%20Object%5D&name=image%20%282%29.png&originHeight=681&originWidth=1115&originalType=binary&ratio=1&size=546004&status=done&style=none&taskId=uf49681e3-eee3-43fd-9d3d-8a0e38da972&width=600)<br />![QQ图片20210825223925.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629902380085-18ea8d16-3ca6-4f1b-8c28-da1d5879df09.png#clientId=u2673c0ec-2be0-4&from=ui&height=445&id=u7769edc9&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825223925.png&originHeight=332&originWidth=448&originalType=binary&ratio=1&size=83034&status=done&style=none&taskId=u602ec0fd-6e41-4d01-a12e-d1cf98814d3&width=600)

4.新建工程模板(基于固件库)

  1. 参考资料:<br />** 战舰/精英STM32F1开发板《STM32F1开发指南-库函数版本》-3.3新建基于固件库的MDK5模板**<br />** miniSTM32F1开发板 STM32不完全手册-库函数版本》-3.3新建基于固件库的MDK5模板】**

1.新建工程模板

1.库函数和寄存器的区别

本质上是一样的。我们可以再库函数模板里面,直接操作寄存器,因为官方库相关头文件有寄存器定义。但是不能在寄存器模板调用库函数,因为没有引入库函数相关定义。
了解寄存器基本原理的目的是为了让我们对STM32相关知识有比较深入的理解。底层代码配置出了问题需要调试的话,必须对寄存器有一定的了解才能找到问题,因为调试代码,底层只能查看寄存器相关配置。

2.下载固件库包

  1. 光盘位置:软件资料\STM32 固件库使用参考资料\STM32F10x_StdPeriph_Lib_V3.5.0 <br /> 官方下载网站:[http://openedv.com/posts/list/6054.htm](http://openedv.com/posts/list/6054.htm)

3.新建工程

  1. 简要概述:<br /> 1.建立一个文件夹为 Template ,建立子文件夹USER<br /> 2.点击 MDK 的菜单: Project –>New Uvision Project 定位到子文件夹USER<br /> 3.选择芯片型号:战舰对应选择<br /> STMicroelectronicsSTM32F1SeriesSTM32F103STM32F103ZET6 <br /> 4.新建 3 个文件夹 CORE, OBJ 以及STM32F10x_FWLib<br /> 5.将官方的固件库包里的源码文件复制到STM32F10x_FWLib 文件夹下面 <br /> 6.将固件库包里面相关的启动文件复制到工程目录 CORE 之下<br /> 7.将固件库包里相关文件复制到USER文件夹下面<br /> 8.将相关的文件加入到工程里,比较繁琐,要仔细认真<br /> 注意: 5678步骤很繁琐,一定要仔细认真,不能复制错文件<br /> 9. ![QQ图片20210825230537.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629903956702-938f6622-6462-4974-9e97-5bcecbc81340.png#clientId=u2673c0ec-2be0-4&from=ui&height=314&id=uced803fa&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825230537.png&originHeight=548&originWidth=698&originalType=binary&ratio=1&size=93699&status=done&style=none&taskId=u68c67042-90db-4e7d-bbe0-0312d189c91&width=400)<br /> 定位到OBJ来存放编译产生的中间文件<br /> 10.要将工程所引用到的所有头文件路径都包含进来<br /> ![QQ图片20210825231658.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629904642182-a31b8854-1ef1-4d8d-b66b-9708689b9a7e.png#clientId=uae5a3f9a-b325-4&from=ui&height=296&id=uc82ba760&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825231658.png&originHeight=524&originWidth=707&originalType=binary&ratio=1&size=125539&status=done&style=none&taskId=u03c2b1df-6604-4763-b312-bd2574f462c&width=400)<br /> ![QQ图片20210825231702.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629904651596-5ddb8c51-6d4a-4a21-a95c-2c94e9c78db7.png#clientId=uae5a3f9a-b325-4&from=ui&height=289&id=uc7e9049a&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825231702.png&originHeight=511&originWidth=707&originalType=binary&ratio=1&size=108453&status=done&style=none&taskId=ufb71f685-620c-4ac8-844d-72cc9f94af5&width=400)<br /> 11.更换USER里面的main.c文件<br /> 12.![QQ图片20210825231010.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629904228695-d5fb7b4d-771b-4297-bca8-bfe141c8f4c3.png#clientId=u2673c0ec-2be0-4&from=ui&height=337&id=uc06b2de8&margin=%5Bobject%20Object%5D&name=QQ%E5%9B%BE%E7%89%8720210825231010.png&originHeight=573&originWidth=681&originalType=binary&ratio=1&size=113766&status=done&style=none&taskId=u0c3cf1b4-c5c5-455e-b06f-ffc436186ae&width=400)<br /> 使编译能够产生hex文件<br /> 13.再次编译后在OBJ中产生hex文件,用 flymcu 下载到 mcu 即可<br /> 14.打开任何一个固件库的实验,可以看到下面有一个 SYSTEM 文件夹 ,将SYSTEM文件夹复 制到Template里,再加入到工程里,将对应的三个目录(sys,usart,delay) 加入到 PATH 中去 <br /> ![0[ZA)9NC{SMKD8YN@Q31_0I.png](https://cdn.nlark.com/yuque/0/2021/png/22507599/1629963955083-41751b8e-64b6-4bf5-9a9b-e136cfc54683.png#clientId=u4f1e1b28-772e-4&from=paste&height=256&id=ucbad3a86&margin=%5Bobject%20Object%5D&name=0%5BZA%299NC%7BSMKD8YN%40Q31_0I.png&originHeight=375&originWidth=587&originalType=binary&ratio=1&size=50315&status=done&style=none&taskId=uce83a141-86e4-461d-841b-ed5818dc9a6&width=400)<br />