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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版