基于正点原子 海创电子视频
首先我们看一下固件库的文件
其中有颜色标记的是模板会用到的
大致的区分是
CORE:驱动文件 启动文件
FWLIB:固件库的一些文件
USER: 一些配置文件
OBJ:放生成的hex文件的地方
建立如上的文件夹,把对应的文件进行复制。
USER下的main.c改成
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //ʹÄÜPA,PD¶Ë¿ÚʱÖÓ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 ¶Ë¿ÚÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8
GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 Êä³ö¸ß
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö
GPIO_Init(GPIOD, &GPIO_InitStructure); //ÍÆÍìÊä³ö £¬IO¿ÚËÙ¶ÈΪ50MHz
GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 Êä³ö¸ß
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
Delay(3000000);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
Delay(3000000);
}
}
右击
建立如图所示的group
每个group放你的那个文件夹里的一些文件
FWLIB里添加固件库inc里的所有文件,记得选择所有文件类型
剩下俩有没有都行,就是一个延时函数
点击小锤子,output勾选hex
选择hex的输出的地方
c/c++
define进行一个宏定义
STM32F10X_HD,USE_STDPERIPH_DRIVER
添加一些path,主要是前三个
模板是可以不同的,但是用到的文件都是相同的,不同的是怎么去分类。
比如海创电子的模板是根据固件库原有的进行的一个类比感觉的分类
是按照原本的进行一个分层,很好理解,但是在keil里建立group时又没有完全按照这个文件夹分类来。这个无所谓按照个人喜好即可。
还有一个更简单的,是江科大自化协的视频
有兴趣的可以去看看