主要用到指针在stm32f10x.gpio.c stm32f10x.rcc.c
LED.h
#ifndef __LED_H
#define __LED_H
void LED_Init(void); //初始化led
#endif
}
LED.c
#include"LED.h"
#include"stm32f10x.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//调用GPIOA GPIOD 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
//GPIOA
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;//PB^5//端口设置LED0-->PB.5
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//IO口速度为50MHz
GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_8);//PB.5输出高电平
//GPIOD
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//端口设置LED0-->PB.5
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//IO口速度为50MHz
GPIO_Init(GPIOD,&GPIO_InitStructure);//初始化GPIOD
GPIO_SetBits(GPIOD,GPIO_Pin_2);//输出高电平
}
main.c
#include"stm32f10x.h"
#include"LED.h"
#include"delay.h"
int main(void)
{
delay_init();//延迟函数初始化
LED_Init();//初始化与LED连接的硬件接口
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED输出低
GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED输出高
delay_ms(500);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//LED输出高
GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED输出低
delay_ms(500);
}
}
个人笔记
主要用到RCC(使能IO口时钟)和GPIO函数(初始化IO口),
其他内容详看代码注释