1. 程式人生 > >STM32點亮閃爍LED燈

STM32點亮閃爍LED燈

eset 程序實現 lan 技術分享 中文 ini target 是個 固件

詳解請看其他博客:

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固件庫使用手冊中文版手冊(這是個好東西,要懂得利用!!!以後開發都是根據這個來編程寫函數的)

技術分享

技術分享

技術分享

最後要燒到開發板的,燒程序的軟件過程

技術分享

STM32點亮閃爍LED燈