我有一个定义为
的结构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 );
任何人都知道如何克服这个问题?
答案 0 :(得分:1)
似乎IAR编译器不支持C99复合文字语法。
--c89
命令行选项)。