×
嵌入式 > 技术百科 > 详情

IAR编译STM8S 中的脚位操作对库函数的一点修改

发布时间:2021-01-18 发布时间:
|

IAR编译STM8S 自带的库函数都知道,IO口中有个每局定义如下:


typedef enum


{

 GPIO_PIN_0    = ((u8)0x01),  /*!< Pin 0 selected */

 GPIO_PIN_1    = ((u8)0x02),  /*!< Pin 1 selected */

 GPIO_PIN_2    = ((u8)0x04),  /*!< Pin 2 selected */

 GPIO_PIN_3    = ((u8)0x08),   /*!< Pin 3 selected */

 GPIO_PIN_4    = ((u8)0x10),  /*!< Pin 4 selected */

 GPIO_PIN_5    = ((u8)0x20),  /*!< Pin 5 selected */

 GPIO_PIN_6    = ((u8)0x40),  /*!< Pin 6 selected */

 GPIO_PIN_7    = ((u8)0x80),  /*!< Pin 7 selected */

 GPIO_PIN_LNIB = ((u8)0x0F),  /*!< Low nibble pins selected */

 GPIO_PIN_HNIB = ((u8)0xF0),  /*!< High nibble pins selected */

 GPIO_PIN_ALL  = ((u8)0xFF)   /*!< All pins selected */

}GPIO_Pin_TypeDef;


然后在调用 GPIO_Pin_TypeDef 时,如果传递更多的参数时会提示一下红色字体,虽然不会有什么影响,但看着也别扭


如函数 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)


操作void GPIO_WriteBit(GPIOA, GPIO_PIN_0 , BitAction GPIO_BitVal) //不会提示报警


操作void GPIO_WriteBit(GPIOA, GPIO_PIN_0|PIO_PIN_1 , BitAction GPIO_BitVal) //会提示报警


Warning[Pe188]: enumerated type mixed with another type C:Program FilesIAR SystemsEmbedded Workbench 6.0stm8examplesST-LINK复件 STM8S105C6-BoardProjectDiscoversrcmain.c 215 


因此我宏定义如下,再次传递多个参数时,就没有出现警告的提示了。


#define GPIO_PIN_0       ((u8)0x01)  /*!< Pin 0 selected */

#define GPIO_PIN_1       ((u8)0x02)  /*!< Pin 1 selected */

#define GPIO_PIN_2       ((u8)0x04)  /*!< Pin 2 selected */

#define GPIO_PIN_3       ((u8)0x08)  /*!< Pin 3 selected */

#define GPIO_PIN_4        ((u8)0x10)  /*!< Pin 4 selected */

#define GPIO_PIN_5        ((u8)0x20)  /*!< Pin 5 selected */

#define GPIO_PIN_6        ((u8)0x40)  /*!< Pin 6 selected */

#define GPIO_PIN_7        ((u8)0x80)  /*!< Pin 7 selected */

#define GPIO_PIN_LNIB     ((u8)0x0F)

#define GPIO_PIN_HNIB     ((u8)0xF0)

#define GPIO_PIN_ALL      ((u8)0xFF)

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
中国国产第三代核电实现并网发电