zoukankan      html  css  js  c++  java
  • STM32

    买了一个STM32F4的开发板,想把上面的东西重新学一下

    快速过:

     一、GPIO控制  

    void GPIO_DeInit(GPIO_TypeDef* GPIOx);                                           //把某一个IO口恢复到默认值
    
    /* 初始化和配置IO口函数**********************************************/
    void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);          //初始化GPIO口函数
    void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);                         //初始化GPIO结构体函数
    void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);                 //GPIO引脚配置锁定函数
    
    /* GPIO读取或者写入函数**********************************************/
    uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);           //读取输入IO口数据的函数
    uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);                                //一次读取GPIO口16BIT数据函数
    uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);          //读取当前GPIO口输出数据函数
    uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);                               //读取当前GPIO口16BIT输出数据函数
    void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);                       //GPIO某引脚置一
    void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);                     //GPIO某引脚置零
    void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);    //GPIO口写入状态
    void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);                          //GPIO口写入16BIT状态
    void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);                    //GPIO口某位取反
    
    /* GPIO映射配置函数 ****************************/
    void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);

    以上是STM32F40x GPIO 口控制的全部函数

    下面是一个GPIO初始化函数的例子:

    //LED初始化函数
    void LED_Init(void)
    {
      GPIO_InitTypeDef GPIO_Struct;
      GPIO_StructInit(&GPIO_Struct);                       //GPIO结构体初始化,恢复默认值
      RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //开启GPIO口时钟
      GPIO_Struct.GPIO_Mode = GPIO_Mode_OUT;               //设置为输出模式
      GPIO_Struct.GPIO_OType = GPIO_OType_PP;              //推挽模式
      GPIO_Struct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;        //设置引脚6和引脚7
      GPIO_Struct.GPIO_PuPd = GPIO_PuPd_NOPULL;            //没有上拉和下拉
      GPIO_Struct.GPIO_Speed = GPIO_High_Speed;            //高速模式
      GPIO_Init(GPIOA,&GPIO_Struct);                       //GPIO口初始化函数
      GPIO_PinLockConfig(GPIOA,GPIO_Pin_6|GPIO_Pin_7);     //锁定引脚配置
      GPIO_SetBits(GPIOA,GPIO_Pin_6|GPIO_Pin_7);           //A6 和A7 GPIO口置一
    }

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    5.1 面向对象
    golang面向对象初识
    golang:interface{}类型测试
    golang反射初试
    golang构造函数与转换函数
    使用golang+java实现基于ecb的3eds加解密
    golang处理错误的艺术
    golang的nil
    原生javascript实现计时器
    原生javascript之实战 轮播图
  • 原文地址:https://www.cnblogs.com/taoke2016/p/6724842.html
Copyright © 2011-2022 走看看