基于STM32F103C8T6的点灯设计

学习目的:本设计是基于STM32F103C8T6单片机完成入门点灯设计。

根据STM32F103C8T6的原理图,可知LED2与CPU的PC13相连,当PC13=1(高电平)时,LED2呈熄灭状态;当PC13=0(低电平)时,LED2呈点亮状态。

基于STM32F103C8T6的点灯设计

参考代码如下:

//main.c
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"

int main(void)
{
	LED_Init();
	while(1)
	{
		GPIO_ResetBits(GPIOC,GPIO_Pin_13);
		delay(200);
		GPIO_SetBits(GPIOC,GPIO_Pin_13);
		delay(200);
	}
}
//led.c
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"

void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStruct);
	
	GPIO_SetBits(GPIOC,GPIO_Pin_13);
}
//led.h
#ifndef _LED_H
#define _LED_H

void LED_Init(void);

#endif
//delay.c
#include "stdint.h"

void delay(uint16_t timers)
{
	uint16_t i,j;
	for(i=0;i<timers ;i++)
	{
		for(j=0;j<0xffff;j++)
		{}
	}

}
//delay.h
#ifndef _DELAY_H
#define _DELAY_H
#include "stdint.h"


void delay(uint16_t timers);

#endif

 

上一篇:STM32F103 主控 DIY 组装的 开源四轴飞行器


下一篇:使用Arduino IDE通过st-link烧录stm32f103c8t6