1. 程式人生 > >常用的stm32庫函式

常用的stm32庫函式

//初始化的方式:先定義初始化機構體、再開啟時鐘使能、在對每一組GPIO口進行初始化。  
  GPIO_InitTypeDef LED_GPIO; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOD, ENABLE); //ʹÄÜPB,PD¶Ë¿ÚʱÖÓ LED_GPIO.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //Ö¸¶¨Òý½Å PD3,4,5,6 LED_GPIO.GPIO_Mode = GPIO_Mode_Out_PP; //
ÍÆÍìÊä³ö LED_GPIO.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_Init(GPIOD, &LED_GPIO); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯ //---------- PB8 ---------------------------- LED_GPIO.GPIO_Pin = GPIO_Pin_8; //Ö¸¶¨Òý½Å PB8 LED_GPIO.GPIO_Mode = GPIO_Mode_Out_PP; //
ÍÆÍìÊä³ö LED_GPIO.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_Init(GPIOB, &LED_GPIO); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯

 

  • 點亮某個燈的程式碼
        GPIO_SetBits(GPIOD, GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);
        GPIO_SetBits(GPIOB,GPIO_Pin_8);

 

或者用巨集定義

#define LED_light(x) ( GPIOD_BSRR |= 0x0001<<x )
#define LED_Close(x) ( GPIOD_BRR |= 0x0001<<x )
#define LED_ALL_light ( GPIO_ODR |= 0x0078 )
#define LED_ALL_close ( GPIO_ODR &= 0xff87 )