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