mian.c
#include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h>
#include "bsp_led.h"
void Delay(uint32_t count)
{
for(;count!=0;count--);
}
int main(void)
{
LED_GPIO_Config(); //配置函数
GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); //设置选定的数据端口位。 就是置1
GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);//清除选定的数据端口位。 就是置0
}
bsp_led.c
#include "bsp_led.h"
//如果结构体没有提示的话,就选择Edit->Configuration->Text Completion->show Code Completion for 下面的选项全部勾上!
void LED_GPIO_Config()
{
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体,结构体中包含了1、端口的输出模式 2、端口的输出速度3、端口的输出引脚
//ENABLE为1
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //将端口GPIOB的端口时钟打开,不打开的话等不会亮
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //将端口的输出模式定为推挽输出
GPIO_InitStruct.GPIO_Pin=LED_G_GPIO_PIN; //引脚配置
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //输出速度为50M
GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct); //调用初始化函数,这个函数将结构里中的设置通过运算配置寄存器CRL的数值。
}
bsp_led.h
#ifndef __BSP_LED_H
#define __BSP_LED_H
#include "stm32f10x.h"
#define LED_G_GPIO_PIN GPIO_Pin_0
#define LED_G_GPIO_PORT GPIOB
#define LED_G_GPIO_CLK RCC_APB2Periph_GPIOB
void LED_GPIO_Config();
#define ON 0
#define OFF 1
// 使用标准的固件库控制IO \为续航符号后面不能有东西不然会报错
#define LED1(a) if (a) \
GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\
else \
GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)
#endif