STM32点亮闪烁LED灯


详解请看其他博客:

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

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

 

 

 1         /*本程序实现STM开发板上LED灯红绿蓝闪烁*/
 2 
 3 
 4 
 5 #include "stm32f10x.h"   // 相当于51单片机中的 #include <reg51.h>
 6 #include "stm32f10x_gpio.h" 
 7 /*
 8     
 9  *由于STM32的GPIO工作模式有8种(输入4种+输出4种) 10  *在GPIO输出之前要先对要操作的GPIO进行配置 11  知识点: 12  一个结构体 13  typedef struct//结构体 14  { 15  uint16_t GPIO_Pin; 16  GPIOSpeed_TypeDef GPIO_Speed; 17  GPIOMode_TypeDef GPIO_Mode; 18  }GPIO_InitTypeDef; 19  三个函数: 20  1、GPIO_Init(GPIOB,&GPIO_InitTypeDef); 21  2、GPIO_ResetBits(GPIOB,GPIO_Pin_5);  这里的意思是给端口5高电平 22  3、GPIO_SetBits(GPIOB,GPIO_Pin_5);   把GPIO引脚设置低电平(红LED灯亮) 23     */
24     
25 //驱动程序:GPIO初始化设置
26 int led_gpio_init_() 27 { 28     GPIO_InitTypeDef GPIO_InitTypeDef;//定义一个结构体变量
29     
30     /*使能GPIO的rcc时钟*/
31  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); 32     
33     /*配置GPIO引脚*/
34     GPIO_InitTypeDef.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_0|GPIO_Pin_1;//使用操作符可以一次使用多个引脚,端口0是绿色 1是蓝色 5是红色
35     GPIO_InitTypeDef.GPIO_Speed  = GPIO_Speed_50MHz;//设置输出速率50MHz
36     GPIO_InitTypeDef.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
37     /*初始化*/
38     GPIO_Init(GPIOB,&GPIO_InitTypeDef);//参数一选择GPIO外设(ABCDE)参数二指向GPIO_InitTypeDef的指针
39 } 40 
41 //延时函数
42 void delay() 43 { 44  int i = 10000000; 45     while(i--); 46 } 47 
48 //主函数
49 int main(void) 50 { 51     led_gpio_init_();//调用GIPO初始化函数
52     
53     /*循环给高低电平实现闪烁*/
54     while(1) 55  { 56  GPIO_ResetBits(GPIOB,GPIO_Pin_5); 57  delay(); 58  GPIO_SetBits(GPIOB,GPIO_Pin_5); 59  delay(); 60         
61  GPIO_ResetBits(GPIOB,GPIO_Pin_0); 62  delay(); 63  GPIO_SetBits(GPIOB,GPIO_Pin_0); 64  delay(); 65         
66  GPIO_ResetBits(GPIOB,GPIO_Pin_1); 67  delay(); 68  GPIO_SetBits(GPIOB,GPIO_Pin_1); 69  delay(); 70  } 71 }

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

 

 

 

 

 

 

 

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

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM