一、新建工程模板
二、keil新建工程
三、添加组文件夹
四、工程模板下USER中新建led文件夹,其中包含led.c和led.h
led.h:
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#define ON 1
#define OFF 0
#define LED(a) if(a) \
GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN); \
else GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN);
#define LED_GPIO_PIN GPIO_Pin_1
#define LED_GPIO_PORT GPIOA
#define LED_GPIO_CLK RCC_APB2Periph_GPIOA
//.C文件的函数声明
void LED_GPIO_Config(void);
#endif /*__LED_H*/
led.c:
#include "led.h"
void LED_GPIO_Config(void)
{
//封装结构体配置IO口输出
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = LED_GPIO_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
//时钟使能
RCC_APB2PeriphClockCmd(LED_GPIO_CLK, ENABLE);
//初始化IO口输出函数
GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
}
main.c
#include "stm32f10x.h"
#include "led.h"
void Delay(uint32_t count)
{
for(;count!=0;count--);
}
int main()
{
//此时系统时钟已经是72M
LED_GPIO_Config();
while(1)
{
//GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN);
LED(ON);
Delay(0xFFFFFF);
//GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN);
LED(OFF);
Delay(0xFFFFFF);
}
}
Tips:keilkill.bat
https://blog.csdn.net/qq_38405680/article/details/80576001