STM32学习笔记1之通用GPIO
时间:2017-6-19 14:29
热度:7335°
评论:5 条

开篇:
已经很久未更新相关内容,由于工作原因,开始学习STM32,会将学习和工作遇到的任何问题和进展,都写下来,如果需要的伙伴可以加上书签在下面留言给我,共同探讨进步。
学习平台: 芯片:STM32F10x 库函数版本:V3.5.0 开发板:百为
由于需要马上上手,继而对于底层寄存器操作认识先行搁置,只要是已开发为主,所以采用官方提供的API接口 通过这些接口来实现对STM3210X的软件编写,
官方提供的固件库 :http://pan.baidu.com/s/1bp6bgcf
GPIO的函数和变量 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; typedef struct { uint16_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured. //0-15对应的管脚号 This parameter can be any value of @ref GPIO_pins_define */ GPIOSpeed_TypeDef GPIO_Speed; /*!< Specifies the speed for the selected pins. //io口传输频率 This parameter can be a value of @ref GPIOSpeed_TypeDef */ GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected pins. 选择输入或输出且是否其他功能 This parameter can be a value of @ref GPIOMode_TypeDef */ }GPIO_InitTypeDef;
#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 */
typedef enum { GPIO_Speed_10MHz = 1, //选择传输MHz GPIO_Speed_2MHz, GPIO_Speed_50MHz }GPIOSpeed_TypeDef; 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_Init(GPIOB, &GPIO_InitStructure); //设置GPIOB为初始化的IO引脚,且将GPIO_IniStructure对应刚才设置的结构体 指针所包含的 PIN SPEED MODE)初始化 GPIO_SetBits(GPIOB,GPIO_Pin_5);//置1 GPIO_ResetBits(GPIOB,GPIO_Pin_5); //清0 还有很多复用功能,继续添加


捐赠支持:如果觉得这篇文章对您有帮助,请
"扫一扫"鼓励作者!
本文作者:RainFly
文章标题: STM32学习笔记1之通用GPIO
本文地址:http://www.rainfly.cn/?post=272
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。
本文地址:http://www.rainfly.cn/?post=272
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

已有5条吐槽