写在前面:
这几天去淘宝买了些元器件搭了台小机器人(上个图),机器人外壳是3D打印的,电子元器件加一起淘宝价大概五六千块钱左右(机器人外壳已经提交了外观专利所以各位抄袭党请绕道)。
因为这个机器人要涉及到STM32单片机开发,于是就重新复习了一下相关的工程开发过程(元件准备---->编写程序------>下载到单片机),也发到csdn上供各位参考,如有错误,还请指教。
1. STM32开发必备硬件
STM32开发依赖于以下硬件(可以关注文末加我好友要这些元器件的采购链接):
- 一台Windows电脑
- 下载/调试器件(推荐ST-Link V2)
- 单片机开发板/核心板(我采用的是STM32F103C8T6)
2. STM32完整开发工程搭建准备工作
下载我提供STM32开发软件大合集(包含Keil,ST-Link驱动,ST官方库,STM32F1系的Device Packs,参数手册等,同时提供了一个超级全的开发模板【包含LED驱动,mpu,机器人轮胎驱动代码等】,只要五个积分!!!!太划算了快来下载吧!):
https://download.csdn.net/download/z824074989y/12275776
另外如果大家觉得我要的积分太多了,也可以自己独立下载,不过会很慢...
下载完成后,解压,按顺序逐个安装:
安装Keil-MDK 5.12(https://pan.baidu.com/s/1nvEMvtZ#list/path=%2F)
安装ST-Link V2驱动(https://dl.pconline.com.cn/download/551989.html)
安装完驱动后重新插拔一下ST-link
安装ST官方开发库(https://www.st.com/content/st_com/en.html)
安装STM32F10x--Device Packs(https://blog.csdn.net/shizes1989/article/details/90754279)
3. 开始新建一个工程------配置工程基本信息
都安装好后,打开Keil-MDK,新建工程:
首先网上有各种新建工程的文档,一个个都那么老长,但是不要害怕,Keil的工程看起来很吓人,但是实际上没啥难度。
我们先新建一个文件夹,命名为firmware。我们把工程建立在这个文件夹下工程。
一个STM32开发的工程依赖三个必备的要素,只要有这三个要素,工程就建立好了:
- 元器件基础Device信息(这也就是为什么要下载STM32F10x--Device Packs)
- STM32的启动引导
- 库及各种头,源文件的路径(包括main函数所在的文件)
既然如此,我们首先打开Keil-ARM,点击Project--New,输入文件名:
在弹出的窗口中选择你的单片机选项(我的是STM32F103C8T6).
***如果弹出窗口中没有你的单片机,那么你需要安装相应的Device Packs,然后重启Keil***
它会弹出管理运行库,因为我们下载了STM32的库,所以点击取消就可以。
工程的第一步就完成了,我们新建了一个工程,并且get到了STM32的元器件信息。
4 为工程添加引导及源文件
完成以上步骤后,Keil左边就出现了新工程:
点击:
这个标志是打开工程文件胚子,它可以为工程添加分组和文件,如下表:
Keil不关心你哪个文件在哪个组里,它只关心你添加的文件全不全。所以你可以自己分配各个组的名称,不必像网上教程那样起规定的名字。然后点击上图中右下角的“Add Files”为每个组添加文件(你自己写的.c源文件,比如main.c)。
但是,有几个文件是必须有添加进文件列表的,他们的安装过程如下:
解压开发大合集中的\STM32F10x_StdPeriph_Lib_V3.5.0(STM32工程库),将Library复制到我们的工程文件夹中。
然后将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\路径下的所有.c文件全部添加进来(分到哪个组里你自己选)
再将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件添加进来(分到哪个组里你自己选)
添加STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的.s文件,根据你的单片机型号,添加文件:
【如果您单片机的存储小于32K,添加startup_stm32f10x_ld.s】
【如果您单片机的存储为32~128K,添加startup_stm32f10x_md.s】
【如果您单片机的存储为128k以上,添加startup_stm32f10x_hd.s】
5. 为工程添加头文件路径及宏定义
宏定义是为了告诉工程应该调用哪些库,我们点击这个标志:
添加头文件路径及宏定义,USE_STDPERIPH_DRIVER文如其意,就是开启STM32的内部外设。
头文件路径的话一般是工程中所有有.h文件的路径都要添加进来,几个比较关键的如下,其他的都是你自己写的头文件所处的路径:
然后点击左上角的编译(前提是你把main.c添加进来,并且有main函数)
就可以编译。
6. 配置编译hex文件及下载到单片机
依次点击三个框,配置工程生成可执行文件
根据自己的板子,确定晶振频率:
配置下载器:
7. 大功告成
编译好文件后,点击:
就可以把程序下载到单片机了!~