准备工作
- 首先查看硬件连接,比如说mini板是A8和D2口
- 确定输出方式为推挽输出(可以直接输出高低电平,驱动led已经足够)
led函数流程
- 开启IO口对应时钟
- 对IO口组进行输出模式,速度,输出引脚的配置
- 初始对IO口输出低电平
主函数
- 初始化延时函数
- 改变输出
- 延时
led头文件
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
led源文件
#include "led.h"
#include "stm32f10x.h"
void LED_Init(void){
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOD ,ENABLE);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStruct);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}
主函数
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
int main()
{
while(1){
LED_Init();
delay_init(72);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
delay_ms(500);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay_ms(500);
}
}
常见的参数
|