STM32 控制一盏灯的亮灭

#include "stm32f10x.h" // Device header

int main(void){
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;

 // typedef enum
 // { GPIO_Mode_AIN = 0x0,       //模拟输入
 // GPIO_Mode_IN_FLOATING = 0x04,   //浮空输入
 // GPIO_Mode_IPD = 0x28,      //下拉输入
 // GPIO_Mode_IPU = 0x48,      //上拉输入
 // GPIO_Mode_Out_OD = 0x14,    //漏极开路输出
 // GPIO_Mode_Out_PP = 0x10,    //推挽输出
 // GPIO_Mode_AF_OD = 0x1C,    //复用开漏
 // GPIO_Mode_AF_PP = 0x18     //复用推挽
 // }GPIOMode_TypeDef;

 


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

//引脚

//  #define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
//  #define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
//  #define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
//  #define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
//  #define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
//  #define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
//  #define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
//  #define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
//  #define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
//  #define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
//  #define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
//  #define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
//  #define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
//  #define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
//  #define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
//  #define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
//  #define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

//  typedef enum
//  { 
//    GPIO_Speed_10MHz = 1,
//    GPIO_Speed_2MHz, 
//    GPIO_Speed_50MHz
//  }GPIOSpeed_TypeDef;
   GPIO_Init(GPIOA,&GPIO_InitStructure) //(外设,结构体的地址)
   GPIO_ResetBits(GPIOA,GPIO_Pin_0);//点亮
   GPIO_SetBits(GPIOA,GPIO_Pin_0);//熄灭

//  void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);            //高电平
//  void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);          //低电平
//  void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);    //对某一位写0/1【可以是枚举中的值或者Bit_RESET(0)或者Bit_SET(1)】

  while(1){

  }
}

 

 

推挽输出即P/N-MOS都导通

 

posted @ 2023-09-30 16:38  ~墨白  阅读(77)  评论(0)    收藏  举报