Darren_pty

导航

1-stm32 gpio库函数

实验目的:点亮两个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);//选择以太网媒体接口

 

posted on 2020-07-08 20:10  Darren_pty  阅读(339)  评论(0编辑  收藏  举报