找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 20|回复: 1

px4源码调试can时出现问题 error: variable 'frame' has initializer but incomplete

[复制链接]

30

主题

26

回帖

4万

积分

管理员

积分
42068
发表于 2025-2-18 11:32:28 | 显示全部楼层 |阅读模式
../../src/drivers/engine_control/engine_control.c: In function 'receive_engine_rota_r':
../../src/drivers/engine_control/engine_control.c:203:11: error: variable 'frame' has initializer but incomplete type
  203 |    struct can_frame frame={};
      |           ^~~~~~~~~
compilation terminated due to -Wfatal-errors.
[57/373] Building CXX object src/modules/mavlink/CMakeFiles/modules__mavlink_original.dir/mavlink_messages.cpp.obj
ninja: build stopped: subcommand failed.
make: *** [Makefile:226:px4_fmu-v6x_default] 错误 1




而且, 我在engine_control.c文件中已经包含了下面的头文件。
#include <nuttx/can.h>
#include <nuttx/can/can.h>
#include <netpacket/can.h>


已获得悬赏 10 金钱

最佳答案

哪里找不到就在哪里加上它的结构体。 #if 1 #define CAN_MAX_DLEN 8 struct can_frame { canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ uint8_t can_dlc; /* frame payload length in byte ...

30

主题

26

回帖

4万

积分

管理员

积分
42068
 楼主| 发表于 2025-2-18 11:35:28 | 显示全部楼层
哪里找不到就在哪里加上它的结构体。



#if 1
#define CAN_MAX_DLEN 8

struct can_frame
{
  canid_t can_id;   /* 32 bit CAN_ID + EFF/RTR/ERR flags */
  uint8_t  can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
  uint8_t  __pad;   /* padding */
  uint8_t  __res0;  /* reserved / padding */
  uint8_t  __res1;  /* reserved / padding */
  uint8_t  data[CAN_MAX_DLEN] __attribute__((aligned(8)));
};
#endif
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|flightreview|小黑屋|PX4-Autopilot|PX4论坛

GMT+8, 2025-3-12 19:21 , Processed in 0.086426 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表