未定义联合名称时访问 uino 变量
access uino variable when union name is not defined
我正在使用 esp32 并尝试使用 i2c 库。
有一个配置结构。
typedef struct{
i2c_mode_t mode; /*!< I2C mode */
int sda_io_num; /*!< GPIO number for I2C sda signal */
int scl_io_num; /*!< GPIO number for I2C scl signal */
bool sda_pullup_en; /*!< Internal GPIO pull mode for I2C sda signal*/
bool scl_pullup_en; /*!< Internal GPIO pull mode for I2C scl signal*/
union {
struct {
uint32_t clk_speed; /*!< I2C clock frequency for master mode, (no higher than 1MHz for now) */
} master;
struct {
uint8_t addr_10bit_en; /*!< I2C 10bit address mode enable for slave mode */
uint16_t slave_addr; /*!< I2C address for slave mode */
} slave;
};
} i2c_config_t;
从这里开始,当我尝试在我的代码中创建和分配 i2c_config_t 时:
i2c_config_t i2cConfigT={
.mode = I2C_MODE_MASTER,
.sda_io_num = _sda,
.scl_io_num = _clk,
.sda_pullup_en = GPIO_PULLUP_ENABLE,
.scl_pullup_en = GPIO_PULLUP_ENABLE,
.master.clk_speed = 100000};
我在 的最后一行收到错误。在主变量之前。
错误说
expected primary-expression before '.' token
从这里我看到工会没有定义的名称这可能是问题所在吗?
.master = {
.clk_speed = 100000,
}
我正在使用 esp32 并尝试使用 i2c 库。
有一个配置结构。
typedef struct{
i2c_mode_t mode; /*!< I2C mode */
int sda_io_num; /*!< GPIO number for I2C sda signal */
int scl_io_num; /*!< GPIO number for I2C scl signal */
bool sda_pullup_en; /*!< Internal GPIO pull mode for I2C sda signal*/
bool scl_pullup_en; /*!< Internal GPIO pull mode for I2C scl signal*/
union {
struct {
uint32_t clk_speed; /*!< I2C clock frequency for master mode, (no higher than 1MHz for now) */
} master;
struct {
uint8_t addr_10bit_en; /*!< I2C 10bit address mode enable for slave mode */
uint16_t slave_addr; /*!< I2C address for slave mode */
} slave;
};
} i2c_config_t;
从这里开始,当我尝试在我的代码中创建和分配 i2c_config_t 时:
i2c_config_t i2cConfigT={
.mode = I2C_MODE_MASTER,
.sda_io_num = _sda,
.scl_io_num = _clk,
.sda_pullup_en = GPIO_PULLUP_ENABLE,
.scl_pullup_en = GPIO_PULLUP_ENABLE,
.master.clk_speed = 100000};
我在 的最后一行收到错误。在主变量之前。
错误说
expected primary-expression before '.' token
从这里我看到工会没有定义的名称这可能是问题所在吗?
.master = {
.clk_speed = 100000,
}