英飞凌
直播中

汪潇潇

7年用户 818经验值
私信 关注

为什么无法退出启动程序模式?

我正试图使用不同于固件中预编程序的电机来控制 BLDC_Shield。 这意味着我需要按照SetParameter()方法重新刷新 Shield。 当尝试在 uVision 中执行此操作时,需要花费大量精力使用 ARM::CMSIS 5.9.0 而不是 ARM::CMSIS 6.0.0 或更高版本的旧软件包。 唯一的方法是在 Bootloader 和 FOC 中注释掉下面几行,这样就能构建项目了:
命令.c
第 26 行、第 32 行和第 43 行:SSC2->CON.PRG_bit.EN = 0;
ERROR:
compiling commands.c...
appcommands.c(26): 错误:#136: union"" has no field"PRG_bit"
SSC2->CON.PRG_bit.EN = 0;
port.c
第 47、48、49 行和第 82、83、84 行
SCU->P0_POCON0.reg = (uint8)SCU_P0_POCON0;
SCU->P0_POCON1.reg = (uint8)SCU_P0_POCON1;
SCU->P0_POCON2.reg = (uint8)SCU_P0_POCON2;
错误
正在编译 port.c...
RTE/Device/TLE9879QXA40/port.c(47): 错误:#20:标识符“SCU_P0_POCON0”未定义
SCU->P0_POCON0.reg = (uint8)SCU_P0_POCON0;
并且仅在 FOC 中:
82,83行
BDRV->CTRL1.reg = (uint32) BDRV_CTRL1;
BDRV->CTRL2.reg = (uint32) BDRV_CTRL2;
错误:
正在编译 bdrv.c...
RTE/Device/TLE9879QXA40/bdrv.c(82): 错误:#20:标识符“BDRV_CTRL1”未定义
BDRV->CTRL1.reg = (uint32) BDRV_CTRL1;
RTE/Device/TLE9879QXA40/bdrv.c(83): 错误:#20:标识符“BDRV_CTRL2”未定义
BDRV->CTRL2.reg = (uint32) BDRV_CTRL2;

如果我注释掉所有这些行。 我可以创建并上传文件,但当我试图命令 arduino 进入 FOC 模式时,却得到了如下结果:
15:13:35.816 -> INFO: Starting initialization
15:13:36.336 -> INFO: Sending reset request to all boards
15:13:37.847 -> INFO: Board 1 was successfully initialized
15:13:37.880 -> INFO: Done initializing
15:13:40.047 -> WARNING: Board[1]; Action[mode control]; failed -> from Bootloader to FOC; Answer: 1110
15:13:40.112 -> INFO: mode change complete -> Board: 1; FOC
15:13:40.178 -> WARNING: Board[1]; Action[change parameter]; action cannot be performed in bootloader
15:13:40.277 -> INFO: parameter change complete -> Board: 1; parameter: 54; value: 6.00
我希望能得到一些帮助,了解如何在不注释的情况下解决这些问题,或者找到合适的值将其定义为这些值。


                        

回帖(1)

王英

2024-7-3 16:53:58
从您的描述来看,您在尝试使用不同于固件中预编程序的电机来控制BLDC_Shield,并且在尝试刷新Shield时遇到了一些问题。这些问题可能与您使用的ARM::CMSIS版本有关,以及在Bootloader和FOC中注释掉的几行代码。

首先,让我们分析一下问题的原因:

1. ARM::CMSIS版本不兼容:您提到使用的是ARM::CMSIS 5.9.0版本,而可能需要使用ARM::CMSIS 6.0.0或更高版本。不同版本的CMSIS可能在某些功能和语法上有所不同,这可能导致编译错误。

2. 编译错误:在命令.c文件的第26行、第32行和第43行,您遇到了一个编译错误,提示“union"没有字段"PRG_bit"”。这可能是因为在您的代码中使用了错误的语法或者引用了不存在的字段。

为了解决这些问题,您可以尝试以下方法:

1. 更新ARM::CMSIS版本:尝试将ARM::CMSIS版本升级到6.0.0或更高版本,以确保与您的项目兼容。这可能需要您检查项目设置,确保使用了正确的CMSIS版本。

2. 检查代码语法:仔细检查命令.c文件中的第26行、第32行和第43行,确保您使用了正确的语法和引用了正确的字段。如果可能的话,查阅相关文档或示例代码,以确保您的代码与CMSIS版本兼容。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分