请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F3同STM32F1系列在定义GPIO的差别

[复制链接]
ddllxxrr 提问时间:2013-3-26 13:04 /
近日看了下F3的GPIO觉得同F1有区别,虽然比F1的改进了,但心里有点不悦,因为老改。

在F1中,

在“stm32f10x_gpio.h”文件中找到对GPIOSpeed_TypeDef的定义:
typedef enum
{
GPIO_Speed_10MHz = 1,
GPIO_Speed_2MHz,
GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;

在F3中

在stm32f37x_gpio.h中找到对GPIOSpeed_TypeDef的定义:

typedef enum
{
  GPIO_Speed_Level_1  = 0x01, /*!< Medium Speed */
  GPIO_Speed_Level_2  = 0x02, /*!< Fast Speed   */
  GPIO_Speed_Level_3  = 0x03  /*!< High Speed   */
}GPIOSpeed_TypeDef;

“stm32f10x_gpio.h”文件中找到对GPIOMode_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;

而在F3的库GPIO的定义把F1中的库中分为四个部份,而把这四部份最后包括在一个结构体中
typedef enum
{
   GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
   GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
   GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
   GPIO_Mode_AN   = 0x03  /*!< GPIO Analog In/Out Mode      */
 }GPIOMode_TypeDef;

typedef enum
{
   GPIO_PuPd_NOPULL = 0x00,
   GPIO_PuPd_UP     = 0x01,
   GPIO_PuPd_DOWN   = 0x02
 }GPIOPuPd_TypeDef;

typedef enum
 {
  GPIO_OType_PP = 0x00,
  GPIO_OType_OD = 0x01
 }GPIOOType_TypeDef;


 typedef struct
{
  uint32_t GPIO_Pin;              /*!< Specifies the GPIO pins to be configured.
            This parameter can be any value of @ref GPIO_pins_define */
   GPIOMode_TypeDef GPIO_Mode;     /*!< Specifies the operating mode for the selected pins.
                                      This parameter can be a value of @ref GPIOMode_TypeDef   */
 
   GPIOSpeed_TypeDef GPIO_Speed;   /*!< Specifies the speed for the selected pins.
                                        This parameter can be a value of @ref GPIOSpeed_TypeDef  */
 
   GPIOOType_TypeDef GPIO_OType;   /*!< Specifies the operating output type for the selected pins.
                                        This parameter can be a value of @ref GPIOOType_TypeDef  */
 
   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;



初始化时有点区别:


F1初始化时参数少两条,其实都在GPIO_Mode中定义。

例:

       GPIO_InitTypeDef GPIO_InitStructur;
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10Mhz;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
       GPIO_Init(GPIOA,&GPIO_InitStructure);

而F3在定义GPIO时,多了两条语句:
例:

        GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
收藏 评论2 发布时间:2013-3-26 13:04

举报

2个回答
阿呆 回答时间:2013-3-29 09:44:56

RE:STM32F3同STM32F1系列在定义GPIO的差别

说的很好,建议大家深入讨论下去哦!
御猫 回答时间:2014-1-4 08:56:30

回复:STM32F3同STM32F1系列在定义GPIO的差别

是啊,感觉应该是一样的,可是实际上还是多少会有差别的
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版