野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9949|回复: 5

枚举常量能直接赋给(没有定义为枚举类型的其他)变量吗

[复制链接]
发表于 2021-12-25 01:26:18 | 显示全部楼层 |阅读模式
本帖最后由 小白也想学阿 于 2021-12-31 14:33 编辑

无111111111111111111111111111标题.png


STM32固件库中,都定义好的,能理解蓝色、红色圈住的部分,会写程序。

但是教科书上枚举类型都是先定义枚举类型变量,然后才把枚举常量赋值给枚举类型变量。
红圈部分(Init初始化结构体成员),但好像并没有定义为枚举类型的变量,也能直接将枚举常量赋值给它们?
回复

使用道具 举报

发表于 2021-12-25 21:38:13 | 显示全部楼层
你好!你看可以这么理解么。typedef enum
{
  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz,
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;这段代码就是用“typedef”这个关键字定义一个枚举类型,其中“GPIOSpeed_TypeDef”就是枚举类型变量,此变量有三个值分别是GPIO_Speed_10MHz =1,GPIO_Speed_2MHz=2,GPIO_Speed_50MHz=3。
回复 支持 反对

使用道具 举报

发表于 2021-12-25 21:45:51 | 显示全部楼层
typedef struct
{
  uint16_t GPIO_Pin;         

  GPIOSpeed_TypeDef GPIO_Speed;  

  GPIOMode_TypeDef GPIO_Mode;   
}GPIO_InitTypeDef;这段代码是用“typedef”这个关键字定义了一个结构体变量,这个结构体变量有三个成员, 分别是GPIO_Pin, GPIO_Speed,GPIO_Mode。其中GPIO_Pin是一个16位的变量,GPIO_Speed是一个有三个值可以选择的枚举变量,GPIO_Mode是一个有8个值可以选择的枚举变量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-27 15:26:43 | 显示全部楼层
本帖最后由 小白也想学阿 于 2021-12-27 15:31 编辑
successwanglei 发表于 2021-12-25 21:45
typedef struct
{
  uint16_t GPIO_Pin;         

谢谢,我看了官方固件库函数,是这样写的,↑,这样写的话是可以理解的。
但是视频教程里是这样写的,↓,所以有帖子所提疑问,这个是什么情况?系统默认默许的吗?


  1. typedef struct
  2. {
  3.   uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
  4.                                       This parameter can be any value of [url=home.php?mod=space&uid=55491]@Ref[/url] GPIO_pins_define */

  5.   uint16_t GPIO_Speed;  /*!< Specifies the speed for the selected pins.
  6.                                       This parameter can be a value of @ref GPIOSpeed_TypeDef */

  7.   uint16_t GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
  8.                                       This parameter can be a value of @ref GPIOMode_TypeDef */
  9. }GPIO_InitTypeDef;
复制代码
回复 支持 反对

使用道具 举报

发表于 2021-12-27 15:55:05 | 显示全部楼层
我是从固件库里复制出来的,我就是没有复制注释部分!
回复 支持 反对

使用道具 举报

发表于 2021-12-27 15:55:53 | 显示全部楼层
小白也想学阿 发表于 2021-12-27 15:26
谢谢,我看了官方固件库函数,是这样写的,↑,这样写的话是可以理解的。
但是视频教程里是这样写的,↓, ...

你看的视频是秉火老师讲的吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 08:44 , Processed in 0.032811 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表