• 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);//选择以太网媒体接口
  • 相关阅读:
    fopen
    alsa 编程
    Alsa中PCM参数设置⭐⭐
    malloc、calloc、realloc和alloca各种的区别
    微信支付:微信支付遇到的坑:jssdk,phpdemo,微信支付提示{"errMsg":"chooseWXPay:fail"}
    java: 观察者模式:Observable被观察者,Observer观察者
    java: Comparable比较器,定义二叉操作类
    java: Comparable比较器,数组对象比较器
    微信支付:价格问题:如果支付金额是单位是分,不能带小数点
    centos:rpm安装,软件安装
  • 原文地址:https://www.cnblogs.com/darren-pty/p/13269001.html
Copyright © 2020-2023  润新知