stm32单片机中的枚举结构体

C语言将枚举类型的变量和常量作为整数处理,在声明枚举类型时,如果没有为某枚举常量指定值时,则该枚举变量的值比前一个常量的值加1。如果第一个枚举常量为指定值,则其值默认为0。注意:枚举的值作为整数使用,但不要把整数作为枚举的值。(?)


可以使用标记和typedef定义枚举类型。


[csharp]  view plain  copy
  1. typedef enum        
  2. {   
  3.   GPIO_Speed_10MHz = 1,          
  4.   GPIO_Speed_2MHz,                         
  5.   GPIO_Speed_50MHz  
  6. }GPIOSpeed_TypeDef;  
  7. //定义速度的枚举结构体   
  8. GPIO_Speed_10MHz = 1,为枚举常量指定值为1  
  9. GPIO_Speed_2MHz, 的值是2 ,该枚举变量的值比前一个常量的值加1,前一个常量值为1  
  10. GPIO_Speed_50MHz,的值是3,该枚举变量的值比前一个常量的值加1,前一个常量值为2  

通过查看端口寄存器(GPIOx_CRH)说明可以发现,赋值吻合。

00:输入模式(复位后的状态)  0
01:输出模式,最大速度10MHz 1
10:输出模式,最大速度2MHz   2
11:输出模式,最大速度50MHz 3


#define ____IO volitale

#define ____O volitale


static 表示只在本C文件里能调用,别的C文件不能调用

猜你喜欢

转载自blog.csdn.net/luoyir1997/article/details/80953451