#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); //对某一位写0
// void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //对某一位写1
// 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都导通
浮空输入 |
上拉输入 |
下拉输入 |
模拟输入 |
开漏输出 |
推挽输出 |
复用开漏输出 |
复用推挽输出 |