STM32点亮闪烁LED灯

时间:2023-03-09 14:56:11
STM32点亮闪烁LED灯

详解请看其他博客:

http://www.cnblogs.com/whik/p/6672730.html

http://www.51hei.com/bbs/dpj-38605-1.html

         /*本程序实现STM开发板上LED灯红绿蓝闪烁*/

 #include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>
#include "stm32f10x_gpio.h"
/* *由于STM32的GPIO工作模式有8种(输入4种+输出4种)
*在GPIO输出之前要先对要操作的GPIO进行配置
知识点:
一个结构体
typedef struct//结构体
{
uint16_t GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
三个函数:
1、GPIO_Init(GPIOB,&GPIO_InitTypeDef);
2、GPIO_ResetBits(GPIOB,GPIO_Pin_5);  这里的意思是给端口5高电平
3、GPIO_SetBits(GPIOB,GPIO_Pin_5);   把GPIO引脚设置低电平(红LED灯亮)
*/ //驱动程序:GPIO初始化设置
int led_gpio_init_()
{
GPIO_InitTypeDef GPIO_InitTypeDef;//定义一个结构体变量 /*使能GPIO的rcc时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); /*配置GPIO引脚*/
GPIO_InitTypeDef.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_0|GPIO_Pin_1;//使用操作符可以一次使用多个引脚,端口0是绿色 1是蓝色 5是红色
GPIO_InitTypeDef.GPIO_Speed = GPIO_Speed_50MHz;//设置输出速率50MHz
GPIO_InitTypeDef.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
/*初始化*/
GPIO_Init(GPIOB,&GPIO_InitTypeDef);//参数一选择GPIO外设(ABCDE)参数二指向GPIO_InitTypeDef的指针
} //延时函数
void delay()
{
int i = ;
while(i--);
} //主函数
int main(void)
{
led_gpio_init_();//调用GIPO初始化函数 /*循环给高低电平实现闪烁*/
while()
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
delay();
GPIO_SetBits(GPIOB,GPIO_Pin_5);
delay(); GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay();
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay(); GPIO_ResetBits(GPIOB,GPIO_Pin_1);
delay();
GPIO_SetBits(GPIOB,GPIO_Pin_1);
delay();
}
}

下面赋三个上面用到的函数,原处截图,出之STM32f10固件库使用手册中文版手册(这是个好东西,要懂得利用!!!以后开发都是根据这个来编程写函数的)

STM32点亮闪烁LED灯

STM32点亮闪烁LED灯

STM32点亮闪烁LED灯

最后要烧到开发板的,烧程序的软件过程

STM32点亮闪烁LED灯