笔者自己用的是正点原子的精英版的开发板,有很多习惯也养成跟正点原子创工程的习惯。
作者学生党一枚,写的不对的地方,请大家多多包涵,学习永无止境,闻道有先后,术业有专攻。
由于官网下载速度慢,我会把下载好的标准库文件放到云盘里,如果自己可以的话,自己可以下载官网的标准库 https://www.st.com/content/st_com/zh/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries/stsw-stm32054.html
以上就是标准库的链接,下载好以后打开文件里面就是以下的样子
我们下载以后,可以看看结构,接下来我们就开始新建一个文件了,里面的文件可以像我这个样子,不建文件行不行,也是可以的,只不过后期管理起来有点难,不利于管理和维护。
- core文件夹 , 主要放启动文件和内核文件
- OBJ文件夹 , 主要放由KEIL编译出来的工程文件和hex文件
- STM32F10x_FWLib 主要放标准库里面的驱动文件和头文件
- SYSTEM , 这个文件夹是由正点公司自己写的,所以这个文件夹可要可不要
- USER 用户的KEIL的文件数据
STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport—>core
STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparmstartup_stm32f10x_hd.s---->core
接着移植STM32F10x_FWLib文件里面的文件
STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver------>STM32F10x_FWLib
STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x----->USER
还有两个呢,在示例工程里面找到的
STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template---->USER
到此为止,我们移植文件夹已经弄完。
打开KEIL软件,新建一个新工程,如果没有STM32F1的芯片支持包,待会儿标准库一起放到云盘里,新建好工程以后,我们有一个OBJ文件专门放这些东西,配置如下图,
接着点击如图的地方
创建相对应的文件夹,我们再把相对应的文件添加进去,相关文件添加进去就是这个样子,
我们把C语言的宏定义,填写成这样STM32F10X_HD,USE_STDPERIPH_DRIVER,顺便把我们的C语言的头文件路径添加进去
最后自己创建一个main.c文件添加到USER
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;iPB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5推挽输出
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
}
}
最后放一下在开发板点亮的图片
文件链接链接:https://pan.baidu.com/s/1VyZ7ZaXfrqqo4i-2HR4soA
提取码:b05r



