我在这段代码中得到了一个incompatible types when assigning to type 'uint16_t {aka short unsigned int}' from type 'ble_uuid_t {aka struct <anonymous>}
ble_uuid_t ble_uuid;
ble_uuid.uuid = m_adv_uuid[0];我将m_adv_uuid定义为
#define AMT_SERVICE_UUID 0x2001
#define AMTS_CHAR_UUID 0x20
#define AMT_RCV_BYTES_CNT_CHAR_UUID 0x2003
ble_uuid_t m_adv_uuid[] = {AMT_SERVICE_UUID, AMTS_CHAR_UUID};被ble_uuid_t定义为
typedef struct
{
uint16_t uuid;
uint8_t type;
} ble_uuid_t;提前感谢
发布于 2017-10-04 08:19:46
其实有两个问题:
uuid。您的任务应该如下所示:
ble_uuid.uuid = m_adv_uuid.uuid;或者,当然,如果您不希望m_adv_uuid是一个ble_uuid_t数组,只需在m_adv_uuid声明中删除[]就足够了,您的其余代码就可以工作了:
ble_uuid_t m_adv_uuid = {AMT_SERVICE_UUID, AMTS_CHAR_UUID};发布于 2017-10-04 08:14:46
您正在定义一个结构数组并尝试初始化它。但您只传递1结构的数据。
编译器认为您正在尝试以不兼容的类型初始化2个ble_uuid_t结构。
这将适用于1个结构:
ble_uuid_t m_adv_uuid = {AMT_SERVICE_UUID, AMTS_CHAR_UUID};要初始化2个结构,您可以这样做:
ble_uuid_t m_adv_uuid[] = {{AMT_SERVICE_UUID, AMTS_CHAR_UUID},{AMT_SERVICE_UUID, AMTS_CHAR_UUID}};https://stackoverflow.com/questions/46560049
复制相似问题