完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正试图使用不同于固件中预编程序的电机来控制 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个回答
|
|
从您的描述来看,您在尝试使用不同于固件中预编程序的电机来控制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版本兼容。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5362 浏览 2 评论
4071 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3588 浏览 9 评论
1203 浏览 8 评论
3491 浏览 7 评论
408浏览 2评论
241浏览 2评论
350浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5367浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
411浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 17:15 , Processed in 0.408109 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号