实验目的:点亮两个LED灯
实验理论:
LED1, 2上拉, 分别是PA8, PD2
实验代码:
(1)初始化
void LED_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //开时钟--APB2 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // A8 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //GPIOD2 GPIO_Init(GPIOD, &GPIO_InitStructure); }
(2)main函数
int main(void) { LED_init(); while(1) { GPIO_ResetBits(GPIOA, GPIO_Pin_8);//reset GPIO_ResetBits(GPIOD, GPIO_Pin_2);//reset } }
(3)有关GPIO库函数API
//void GPIO_DeInit(GPIOA); //将外设GPIOA 寄存器重设为默认值//void GPIO_AFIODeInit(void);//将复用功能(重映射和EXTI设置)重设为默认值//void GPIO_Init(GPIOA, GPIO_InitTypeDef* GPIO_InitStruct);//指定参数初始化 //void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);//结构体初始化 //uint8_t GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);//读取GPIO指定管脚输入 //uint16_t GPIO_ReadInputData(GPIOB);//读取指定端口输入 //uint8_t GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);//读取指定管脚输出 //uint16_t GPIO_ReadOutputData(GPIOB);//读取指定端口输出 //void GPIO_SetBits(GPIOB, GPIO_Pin_7);//指定管脚置位 //void GPIO_ResetBits(GPIOB,GPIO_Pin_7);//指定管脚复位 //void GPIO_WriteBit(GPIOB, GPIO_Pin_7, Bit_SET);//置位或复位指定管脚 //void GPIO_Write(GPIOB, 0x1101);//向指定端口写数据 //void GPIO_PinLockConfig(GPIOB, GPIO_Pin_7|GPIO_Pin_8);//锁定指定管脚设置寄存器 //void GPIO_EventOutputConfig(GPIO_PortSourceGPIOB,GPIO_PinSource7);//选择GPIO管脚用作事件输出 //void GPIO_EventOutputCmd(ENABLE);//使能或失能事件输出 //void GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);//改变管脚映射 //void GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource7);//选择用作外部中断线源的GPIO //void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);//选择以太网媒体接口