本文采用野火霸道开发板为硬件基础;野火手把手教你学STM32-基于M3 - 网易云课堂study.163.com
内容并不详细完整,主要是为了自己以后忘记时查阅方便。
大家如果想学习可以直接去看教程:
第零节 创建寄存器版工程及连接STLINK
一、创建寄存器版工程
1、创建新工程,选好MCU
![34ca3c60e4d053d084c8bbc5590e8e83.png](https://i-blog.csdnimg.cn/blog_migrate/3b6654476773c78bc61b3a90a3705def.jpeg)
建好之后工程树如下:
![d794b60acf129ea7fe79458ab8ac8899.png](https://i-blog.csdnimg.cn/blog_migrate/068e9b4ffff510120cd2ad11b40e8ad8.png)
此时工程目录中已经自动生成了 listing 和 Objects 文件夹
2、拷贝startup_stm32f10x_hd.s进入工程根目录(这是工程的启动文件)
要找到这个文件,你要先下载一个固件库
![383484aa79643a0e3293e31b68eabebc.png](https://i-blog.csdnimg.cn/blog_migrate/e9d894647af41824554d5b5b84b3ebe4.jpeg)
拷贝完成后如下:
![7db1a9487c5a66dfe7462c816fa0649f.png](https://i-blog.csdnimg.cn/blog_migrate/98bacd0d27d03e70d26579c24d48d4a5.png)
回到keil,双击工程树Source Group 1文件夹将启动文件添加进去
![4f99d9edfa67dc28bdd78c0704ca4b2d.png](https://i-blog.csdnimg.cn/blog_migrate/665f680d08731da3458408a1cc54aaee.jpeg)
3.在工程目录创建 main.c文件也按上述方法添加进去
![b2eeae9028f7bafd07daaf908a114ec2.png](https://i-blog.csdnimg.cn/blog_migrate/13ff4436fd31419fc35035380e40a214.png)
4.还需要一个头文件 stm32f10x.h,去固件库或者网上找,也可以自己先建一个空的,并添加进工程。
5.在main函数里写一个基本结构
#include "stm32f10x.h"
int main(void)
{
return 0;
}
void SystemInit(void)
{
}
至此,一个空壳工程就建立完毕了。
二、ST-LINK v2连接
1、接线
SWD → TMS
SWC → TCK
GND → GND
RST → RST(可不接)
3.3v → 3.3v(可不接)
2、软件设置
![3443ac65bd7fb6fdd9a34f3eb4c28984.png](https://i-blog.csdnimg.cn/blog_migrate/bb0dd0a7e69455fb8b55c3a6c9e77d0e.jpeg)
![7161aac2220f716b3c0d7e2a53dcfef9.png](https://i-blog.csdnimg.cn/blog_migrate/41660228d598b6a4599c04401d8e061b.jpeg)
![68fbc634cfd189096825204c14e270fc.png](https://i-blog.csdnimg.cn/blog_migrate/6b72a70459f1a86042ce751aed6b6290.jpeg)
![73483aa261caf40ae977f2e8ab92d83e.png](https://i-blog.csdnimg.cn/blog_migrate/6367484ca9be4b53f515a12dda33235d.jpeg)
3、编译器下载
![0e30401302cf1a6ea033ee7b3feab326.png](https://i-blog.csdnimg.cn/blog_migrate/c101f1999626cec6b392786e7420ba23.png)
第一节 寄存器点亮LED
操作GPIO需要以下工作:
1 开启GPIO对应的时钟APB2时钟源
![fbb1fdfbadf176cf9caa3228129bdf70.png](https://i-blog.csdnimg.cn/blog_migrate/35de8f4fdc22c23444b2009dd5e3a873.jpeg)
2 设置GPIO推挽10M输出
![16029ec76655c25e6cf5851fb0e17b56.png](https://i-blog.csdnimg.cn/blog_migrate/f8d05a372850af6e1659bee17b095237.jpeg)
3 给GPIO ODR寄存器送值
![c722c9a0a06abf87c8c80630345b2ae5.png](https://i-blog.csdnimg.cn/blog_migrate/20b441b054c8808121befb0f40567f0c.jpeg)
#include