я структура определена какназначение структуры дает "ожидается выражение"
typedef struct sCP {
nuint32_t Fr;
DrRange_t DR;
uint8_t B;
} CP_t;
Некоторые предопределенные значения
#define LC4 { 86, { ((D5 << 4) | D0) }, 0 }
#define LC5 { 87, { ((D5 << 4) | D0) }, 0 }
и функцию
LMS_t LMCA(uint8_t id, CP_t params)
typedef enum eLoRaMacStatus {
LM_STATUS_OK,
LM_STATUS_BUSY,
LM_STATUS_PARAMETER_INVALID,
LM_STATUS_DEVICE_OFF,
} LMS_t;
В коде, это используется как
Lmca(3, (CP_t)LC4);
Lmca(4, (CP_t)LC5);
При компиляции с IAR для ARM Cortex M3 я получаю Error[Pe29]: expected an expression
на обеих линиях.
Если я
CP_t t = LC4;
Lmca(3, t);
Это идет хорошо, но у меня такая же ошибка, если я затем попытаться вызвать
t = LC5;
Lmca(4, t);
Каждый имеет представление о том, как я могу преодолеть эту проблему?
Один из назначенных-инициализатор-лист, а другой составной литерал. У C++ нет составных литералов, AFAIK, поэтому убедитесь, что вы компилируете с помощью современного ** C ** компилятора. – EOF
Выполняет ли это 't = (CP_t) LC5?'? Если нет, то, похоже, компилятор не поддерживает сложные литералы. – alk
@ Аналогичный результат с 't = (CP_t) LC5;' – mirmit