使用位帶操作,位帶操作就是把每個比特膨脹成一個32位的字,當訪問這些字的時候就訪問這些比特位。 http://www.cnblogs.com/xiaobo-Linux/ 然後,埠使能: GPIO_SetBits(GPIOB,GPIO_Pin_5); 這個必須要寫,取地址。 GPIO_SetBits ...
使用位帶操作,位帶操作就是把每個比特膨脹成一個32位的字,當訪問這些字的時候就訪問這些比特位。
http://www.cnblogs.com/xiaobo-Linux/
然後,埠使能:
//³õʼ»¯PB5ºÍPE5ΪÊä³ö¿Ú.²¢Ê¹ÄÜÕâÁ½¸ö¿ÚµÄʱÖÓ //LED IO³õʼ»¯ void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //ʹÄÜPB,PE¶Ë¿ÚʱÖÓ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 ¶Ë¿ÚÅäÖà GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOB.5 GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 Êä³ö¸ß GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö GPIO_Init(GPIOE, &GPIO_InitStructure); //ÍÆÍìÊä³ö £¬IO¿ÚËÙ¶ÈΪ50MHz GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 Êä³ö¸ß }
GPIO_SetBits(GPIOB,GPIO_Pin_5);
這個必須要寫,取地址。
GPIO_SetBits(GPIOB,GPIO_Pin_5);這個可以不寫,主要是開機不讓LED亮;
SetBits 是 高電平 1 ;
RestBits是低電平 0 ;
然後是位帶操作:
#ifndef __LED_H #define __LED_H #include "sys.h" #define LED0 PBout(5)// PB5 #define LED1 PEout(5)// PE5 void LED_Init(void); #endif
#ifndef __LED_H
#define __LED_H
..
..
#endif
是防止重覆載入頭文件
#define LED0 PBout(5) out是輸出 Int是輸入
輸出PB.5引腳
在main.c中直接就可以像c51那樣寫 LED0 =1;LED0=0;