STM32新建工程

1、新建工程

  • Keil5中,新建Project,选择STM32Project文件夹,在此文件夹下新建一个文件夹"STM32工程模板",然后给工程文件起名字"Project"
  • 选择器件型号

2、添加启动文件

  • 新建start文件夹
  • 复制启动文件:固件库文件夹.../CM3/DeviceSupport/ST/STM32F10x/startup/arm/中的文件复制到start文件夹下
  • 赋值stm32外设寄存器描述文件:.../CM3/DeviceSupport/ST/STM32F10x/下的stm32f10x.h(外设寄存器描述文件)、system_stm32f10x.c(配置时钟)、system_stm32f10x.c
  • 添加内核启动文件(因为stm32是内核和内核外围设备组成).../CM3/CoreSupport文件夹下core_cm3.c、core_cm3.h(内核寄存器描述文件和相关配置)

3、添加文件到工程中(stm32基本文件)

  • 更改工程文件名为start,右键-添加存在的文件,添加start文件中的...md.vls(启动文件)、.c、.h文件

4、工程选项中添加头文件路径

5、新建main.c文件

  • 文件夹内新建User文件夹
  • 工程文件,右键-添加组-改名User,User上右键-添加新文件-main.c-选择Location,要选择文件夹中新建的User文件夹,否则main.c会默认在文件夹外

6、代码编写

  • 引入stm32f10x.h头文件
  • 写main函数
  • 添加一个while死循环

7、添加库函数

  • 工程文件夹下新建"Library"文件夹
  • 复制固件库文件:.../Libraries/..._Drivers/src下的文件复制到新建的"Library"文件夹下;
  • 复制inc文件(库函数头文件):.../Libraries/..._Drivers/inc下的文件复制到新建的"Library"文件夹下;
  • Keil软件,右键添加组,改名为"Library",右键添加已存在的文件,添加库函数文件
  • 添加必要文件到User文件夹:固件库文件夹,添加stm32f10x.conf.h(用来配置库函数头文件的包含关系的以及参数检查的函数定义)和stm32f10x_it.hstm32f10x_it.c(用来存放中断函数)
  • Keil软件中将stm32f10x.conf.hstm32f10x_it.hstm32f10x_it.c三个文件添加到User组中
  • 添加宏定义"USE_STDPERIPH_DRIVER",添加标准外设库,这样才能包含标准外设库,也就是库函数


    调整工程目录顺序

8、库函数实现点灯

c 复制代码
#include "stm32f10x.h"
// Device header
int main(void){
	RCC_APB2PeriphclockCmd(RCC APB2Periph GPIOC,ENABLE);
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_out_PP;
	GPIO_Initstructure.GPlo_Pin = GPIO_Pin_13;
	GPIO_Initstructure.GPlO_speed = GPIO_speed_50MHz;
	GPIO_Init(GPIOC,&GPIo Initstructure);
	GPIO setBits(GPIOC,GPIO_Pin_13);
	while (1)
	{
	}
}
相关推荐
2CM_Embed4 小时前
Altium Designer 原理图与 PCB 快速相互定位:Cross Probe 交叉探针
嵌入式硬件·pcb·altium designer·c2000
恒锐丰-罗生6 小时前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh8 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计10 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech11 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ11 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡13 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城14 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡14 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生15 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程