在保存各种项目的文件夹内创建一个项目文件夹1
新建工程到文件夹1
选择芯片
添加工程的必要文件(固件库)
STM32程序是从启动文件开始,复制这些文件到文件夹A的新建Start文件夹下
stm32f10x.h | 外设寄存器描述文件(寄存器名称以及地址) |
system_stm32f10x.c | 配置时钟 |
这三个文件也复制到Start文件夹下
STM32是内核和内核外围设备组成,而且这个内核的寄存器描述和外围设备的描述文件不是在一起的,所以还需要添加一个内核寄存器的描述文件
也也复制到Start文件夹下
暂时OK
把对应的文件添加到项目中, //具体芯片对应哪个启动文件可查看本文结尾
添加头文件路径到工程选项(魔术棒)中
创建文件夹
此时在main文件中添加下面代码,使用寄存器开发
#include "stm32f10x.h" int main(void) { while(1) { } }
配置UTF8
配置调试器
测试代码
#include "stm32f10x.h" int main(void) { RCC->APB2ENR=0x00000010 ; //打开GPIOC的时钟 GPIOC->CRH=0x00300000; //输出模式 推挽输出 //GPIOC->ODR=0x00000000; //全0 PC13的灯亮,0002000灭 GPIOC->ODR=0x0002000; while(1) { } }
添加库函数 misc杂项,为内核库函数,其他的为外设库函数
全部复制到新建的文件夹Library内
over
stm32f10x_conf.h |
配置库函数头文件的包含关系,用来参数检查的函数定义,库函数都需要 |
stm32f10x_it.c | interrupt 文件存放中断函数 |
三个文件复制到User文件夹下,同时添加到工程对应文件夹内
定义相关
基于库函数的工程OK
简单使用库函数
#include "stm32f10x.h" int main(void) { //RCC->APB2ENR=0x00000010 ; //打开GPIOC的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //GPIOC->CRH=0x00300000; //输出模式 推挽输出 GPIO_InitTypeDef A; A.GPIO_Mode=GPIO_Mode_Out_PP ; //通用推挽输出 A.GPIO_Pin=GPIO_Pin_13; A.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC, &A ); //13口的LED HEX=C //GPIOC->ODR=0x00000000; //全0 PC13的灯亮,0002000灭 //GPIOC->ODR=0x0002000; GPIO_SetBits(GPIOC,GPIO_Pin_13); //高电平 //GPIO_ResetBits(GPIOC,GPIO_Pin_13); //低电平 亮 while(1) { } }
PS
启动文件对应芯片型号
项目整体结构分析 1 2主动执行 ,3 被动执行
汇编写的调用
标签:文件,新建,stm32f10x,0810,GPIOC,文件夹,GPIO,KEIL5,库函数 From: https://www.cnblogs.com/liujinmeng/p/17621854.html