1、开发STM32的方式

寄存器方式,标准库函数方式、HAL库开发方式(适合快速上手)

2、建立基于标准库函数的工程

① 创建工程文件夹 ;

② Project -> New μVision Project ->选择上面工程文件夹 ->新建本次工程文件夹,起名STM32工程模板 -> 给工程文件起名Project

③ 选择器件型号STM32F103C8T6

④ 新建Start目录,添加工程必要文件至Start目录,并在Keil中新建Start组,添加Start目录中的文件

启动文件 (startup_xxx_.s)

外设寄存器头文件(stm32f10x.h) 

配置时钟文件(system_stm32f10x.c + system_stm32f10x.h)

内核寄存器头文件(core_cm3.c+core_cm3.h)

添加头文件路径:魔术棒--->C/C++--->Include Paths 选择Start文件夹

⑥ 创建User文件夹,Keil添加User组,  添加main.c文件,编写简单函数编译测试一下

⑦ 连接STM32和STLINK

⑧ 魔术棒--->Debug--->Settings--->ST-Link Debugger FlashDown--->Reset and Run

1、基于寄存器点灯

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC->APB2ENR = 0x00000010; //APB2ENR寄存器的IOPCEN位被置1,使能GPIOC的时钟
	GPIOC->CRH = 0x00300000;  // 端口配置高寄存器GPIOC->CRH,CNF和MODE配置为00和11
	GPIOC->ODR = 0x00002000; // 端口输出数据寄存器GPIOC->ODR,ODR13写1高电平,写1低电平
	while(1)
	{
		
	}	
}

 

2、标准库函数点灯

(1) 新建Library文件夹存放内核和外设的标准库函数文件,Keil中添加组Library,添加文件

(2) User文件夹添加stm32f10x_conf.h文件,用于配置库函数头文件的包含关系

main.c中包含stm32f10x.h, stm32f10x.h文件包含stm32f10x_conf.h, stm32f10x_conf.h文件包含外设库函数头文件

#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif

(3) User文件夹添加stm32f10x_it.c、stm32f10x_it.h文件,用于存放中断函数

(4) 魔术棒--->C/C++--->Define中粘贴 USE_STDPERIPH_DRIVER

(5) 添加头文件路径:魔术棒--->C/C++--->Include Paths 选择User,Library文件夹

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); // 配置GPIOC的外设时钟
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP; // 引脚:模式通用推挽输出
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_13;      // 要初始化的引脚:13号引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速度
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	
	GPIO_SetBits(GPIOC, GPIO_Pin_13);
    GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	
	while(1)
	{
		
	}	
}

 

工程架构:

1、Start文件夹 中存放 启动文件内核寄存器描述文件外设寄存器描述文件系统配置文件 

2、System文件夹 中存放 延时函数文件等

3、Library文件夹 中存放 标准库函数文件

4、Hardware文件夹 中存放  用户外设功能文件

5、User文件夹 中存放 main函数文件配置头文件(管理外设的头文件包含关系)、中断函数文件

 

posted on 2025-01-16 18:41  轩~邈  阅读(541)  评论(0)    收藏  举报