永发信息网

stm8用库函数初始化GPIO引脚,与stm32调用库的方式不一样?

答案:3  悬赏:0  手机版
解决时间 2021-03-26 23:01
  • 提问者网友:蔚蓝的太阳
  • 2021-03-26 08:32
stm8用库函数初始化GPIO引脚,与stm32调用库的方式不一样?
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-03-26 08:51
#define Relay1 GPIO_PIN_2
#define Relay2 GPIO_PIN_3
GPIO_Init(GPIOA,(GPIO_Pin_TypeDef)(Relay1|Relay2),GPIO_MODE_OUT_PP_LOW_SLOW);
用宏定义可方便以后修改
全部回答
  • 1楼网友:动情书生
  • 2021-03-26 11:24
不懂爱,查查数据手册吧,函数裤手册
  • 2楼网友:duile
  • 2021-03-26 10:30
你的初始化方式我使用过,没有问题啊。追问
IAR编译,stm8。。

追答GPIO_Init(GPIOB, (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4), GPIO_MODE_OUT_PP_HIGH_FAST);
要不括号括起来,在看看文件包含。追问加括号也没用,优先级没问题。。
库函数中 Pin 脚定义的是一组枚举变量,没有Pin脚或之后的取值,这样不相当于直接给枚举赋了一常量值吗?追答有定义啊
typedef enum
{
GPIO_PIN_0 = ((uint8_t)0x01), /*!< Pin 0 selected */
GPIO_PIN_1 = ((uint8_t)0x02), /*!< Pin 1 selected */
GPIO_PIN_2 = ((uint8_t)0x04), /*!< Pin 2 selected */
GPIO_PIN_3 = ((uint8_t)0x08), /*!< Pin 3 selected */
GPIO_PIN_4 = ((uint8_t)0x10), /*!< Pin 4 selected */
GPIO_PIN_5 = ((uint8_t)0x20), /*!< Pin 5 selected */
GPIO_PIN_6 = ((uint8_t)0x40), /*!< Pin 6 selected */
GPIO_PIN_7 = ((uint8_t)0x80), /*!< Pin 7 selected */
GPIO_PIN_LNIB = ((uint8_t)0x0F), /*!< Low nibble pins selected */
GPIO_PIN_HNIB = ((uint8_t)0xF0), /*!< High nibble pins selected */
GPIO_PIN_ALL = ((uint8_t)0xFF) /*!< All pins selected */
}GPIO_Pin_TypeDef;追问谢谢~按楼上的做法好了..
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯