本文采用野火霸道开发板为硬件基础;野火手把手教你学STM32-基于M3 - 网易云课堂
内容并不详细完整,主要是为了自己以后忘记时查阅方便。
大家如果想学习可以直接去看教程:
第零节 创建寄存器版工程及连接STLINK
一、创建寄存器版工程
1、创建新工程,选好MCU
建好之后工程树如下:
此时工程目录中已经自动生成了 listing 和 Objects 文件夹
2、拷贝startup_stm32f10x_hd.s进入工程根目录(这是工程的启动文件)
要找到这个文件,你要先下载一个固件库
拷贝完成后如下:
回到keil,双击工程树Source Group 1文件夹将启动文件添加进去
3.在工程目录创建 main.c文件也按上述方法添加进去
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、软件设置
3、编译器下载
第一节 寄存器点亮LED
操作GPIO需要以下工作:
1 开启GPIO对应的时钟APB2时钟源
2 设置GPIO推挽10M输出
3 给GPIO ODR寄存器送值
#include "stm32f10x.h"
void delay(int count)
{
int i,j;
for(i=0;i<2000;i++)
for(j=0;j<1000;j++);
}
int main(void)
{
*(unsigned int *)0x40021018 |= (1<<3);//开启时钟源
*(unsigned int *)0x40010C00 |= (1<<0);//ÉèÖÃGPIOΪÍÆÍìÊä³ö10M
while(1)
{
*(unsigned int *)0x40010C0C ^= (1<<0); //PB0È¡·´
delay(100);
}
}
void SystemInit(void)
{
}