问题描述
我正在使用 Cosmic 编译器和 ST Visual Develop 为 stm8 编写固件。我使用 astruct 如下:
typedef enum
{
lcBlack = 0,lcRed,lcGreen,lcOrange
}
led_color_t;
PUBLIC typedef enum
{
lppEmpty,lppStartup,lpp_volt_off,lpp_volt_warn,lpp_volt_over,lpp_volt_under,lpp_volt_drop,lppPause,lppHY,lppMLZ,lppTD,lppOnOK,lppOff,lppLixilTestTouch
}
led_name_t;
typedef struct
{
uint8_t enable;
led_name_t led_name;
led_color_t led_color;
uint8_t prio;
uint16_t t_on_0;
uint16_t t_off_0;
uint8_t cnt_0;
uint16_t t_on_1;
uint16_t t_off_1;
uint8_t cnt_1;
uint16_t t_1;
uint16_t t_2;
}
led_patt_t;
然后我定义并初始化一个结构数组,如下所示:
led_patt_t led_pattern[73] = {
{0,lppEmpty,lcBlack,0},{0,255,100,10,500},{1,210,2,1100},150,1300}
... };
result_t led_pattern_request (led_patt_t led_patt){
{
led_private.pattern_current.color[0] = led_patt.led_color;
led_private.pattern_current.color[1] = led_patt.led_color;
led_private.pattern_current.priority = led_patt.prio;
led_private.pattern_current.time_on_25ms[0] = (uint8_t)led_patt.t_on_0;
.
.
.
}
哪里
led_data_t led_private;
led_pattern_request (led_pattern[17]);
然而,编译后我得到了以下错误:
- #error cpstm8 ..\src\memory\flash.c:38(36+2) 无效的间接操作数
- #error cpstm8 ..\src\memory\flash.c:38(38) 不兼容的参数类型
- #error cpstm8 ..\src\memory\flash.c:38(24+11) led_pattern undefined
这对我来说真的很困惑,我也尝试将指向结构的指针传递给函数,但我得到了同样的错误。任何帮助是极大的赞赏。我是编程新手,需要您的帮助。
先谢谢你。 最好的祝福, 乌利亚
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)