我有以下 c 行(为了可读性而添加回车符 - 它们不在代码中):
#define i2c_write(slave_addr, reg_addr, len, *data_ptr)
twi_master_write(MPU_TWI, {
.addr = reg_addr,
.addr_length = 1,
.buffer = *data_ptr,
.length = len,
.chip = slave_addr
})
Where twi_master_write()
声明为:
uint32_t twi_master_write(Twi *p_twi, twi_packet_t *p_packet);
and twi_packet_t
声明为:
typedef struct twi_packet {
uint8_t addr[3];
uint32_t addr_length;
void *buffer;
uint32_t length;
uint8_t chip;
} twi_packet_t;
参数为twi_write()
都必须是类型unsigned char
.
编译时,我收到以下错误:
expected expression before '{' token
有没有正确的方法来做我在这里想做的事情,或者这是不可能的?