打印
[STM32F0]

STM32F051 gpio 库 结构体详细解释

[复制链接]
1085|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
七颗咖啡豆|  楼主 | 2016-4-8 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef struct
{
/* 这个不用解释 */
  uint32_t GPIO_Pin;   
           
   /*  GPIO_Mode_IN   = 0x00, /*输入 TTL电平   通用IO模式选择          */
  GPIO_Mode_OUT  = 0x01, /*输出 TTL        通用IO模式选择      */
  GPIO_Mode_AF   = 0x02, /*复用功能,IO不做通用IO时选择这个参数 */
  GPIO_Mode_AN   = 0x03  /*模拟电平    ADC ,DAC 时选这个参数     */

*/                                 
GPIOMode_TypeDef GPIO_Mode;   

/*
  GPIO_Speed_Level_1  = 0x01, /*!< Medium Speed */
  GPIO_Speed_Level_2  = 0x02, /*!< Fast Speed   */
  GPIO_Speed_Level_3  = 0x03  /*!< High Speed   */

#define GPIO_Speed_10MHz GPIO_Speed_Level_1   /*!< Fast Speed:10MHz   */
#define GPIO_Speed_2MHz  GPIO_Speed_Level_2   /*!< Medium Speed:2MHz  */
#define GPIO_Speed_50MHz GPIO_Speed_Level_3   /*!< High Speed:50MHz   */

没什么说的IO速度而已,根据IO上信号的频率选择
*/
  GPIOSpeed_TypeDef GPIO_Speed;   /*!< Specifies the speed for the selected pins.
                                       This parameter can be a value of @ref GPIOSpeed_TypeDef  */

/*
  GPIO_OType_PP = 0x00,  //推挽
  GPIO_OType_OD = 0x01 //开漏

在复用功能,和普通IO输出功能 时需要配置,不配置应该默认初始化为0.即推挽
*/
  GPIOOType_TypeDef GPIO_OType;   /*!< Specifies the operating output type for the selected pins.
                                       This parameter can be a value of @ref GPIOOType_TypeDef  */
/*
  GPIO_PuPd_NOPULL = 0x00,
  GPIO_PuPd_UP     = 0x01,
  GPIO_PuPd_DOWN   = 0x02

不拉,上拉,下拉,根据需要配置,不配置默认0,不拉
*/
  GPIOPuPd_TypeDef GPIO_PuPd;     /*!< Specifies the operating Pull-up/Pull down for the selected pins.
                                       This parameter can be a value of @ref GPIOPuPd_TypeDef   */
}GPIO_InitTypeDef;



有3个参数是必须要配置的 GPIO_Pin  GPIO_Mode GPIO_Speed 其它两个不配置就默认选0




void Init()
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);                //

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                                                                        
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;       
      //定义了  GPIO_InitStructure 后里面各个参数初始化为0,所以下面两句没有意义,可以省略
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//        有需要就配置,不配置默认0                                                               
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//有需要就配置,不配置默认0
//如果是复用模式,就需要下面这个函数
//解释下GPIO_AF_1,在手册引脚表后有个复用表  看了就知道怎么选择了
//        GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);

        GPIO_Init(GPIOC, &GPIO_InitStructure);        

}

突然要用STM32F030  IO参数配置和103有点区别,网上有没找到相关解释,
特此记录。
有错误请指出更正
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

508

帖子

4

粉丝