开源改变世界

令牌“4013 [273, 39] 之前缺少二元运算符 #75

推推 grbl 3年前 (2023-02-06) 186次浏览
关闭
Vern-K 打开了这个问题 2019 年 10 月 30 日 · 9条评论
关闭

令牌“4013 [273, 39] 之前缺少二元运算符#75

Vern-K 打开了这个问题 2019 年 10 月 30 日 · 9条评论

评论

令牌“4013 [273, 39] 之前缺少二元运算符 #75

你好,请帮忙,我是编码的新手,自从 Apple IIGS 以来我就没玩过它……我有一个 SKR mini E3 V1.2 在路上(也许如果它到达这里)用于我的 Ender 3。到目前为止,我已经完成了说明中概述的更改,并对 Slice Engineering 450C 的热敏电阻表进行了更改,这是我第一次尝试使用它时所做的,从那时起该表就出现在列表中, 将其设置为列表中的编号 67。我在软件方面遇到了其他问题(比如使用了错误的东西和其他类似的东西)我关闭了所有这些并删除了文件以重新开始,在 Atom 中启动然后移动到 VSC,找不到临时表文件夹但是#67显示为 SliceEngineering 的 450C 热敏电阻,因此将其设置为该值并更改最大温度并继续前进。然后当我去编译所有东西时,我得到了 1 个错误。我更喜欢硬件,所以请使用简短的文字和蜡笔,但希望得到一些帮助来准备好并浏览我需要知道的内容,比如如何上传需要的内容,以便可以看到我的内容搞砸了。谢谢

令牌“4013 [273, 39] 之前缺少二元运算符 #75

此错误表明预处理器在预处理器指令(#if、#endif、#define 等)中遇到了一些无效语法。请存档更改的文件并添加它们,以便我们查看。或者至少包含文件和行号的完整错误代码描述。

令牌“4013 [273, 39] 之前缺少二元运算符 #75
作者

所以这是完整的错误代码,不知道在哪里可以找到文件,点击保存并返回并出现其他一些错误,不太确定我做了什么,正在寻找并且有客户需要照顾.. .. 遇到一些问题,比如如何防止它打开我想关闭的东西……我想我找到了防止它打开 V1.0 的东西……所以一旦我找到我的位置正在研究如何保存它以及我要发布哪个文件夹?

令牌“4013 [273, 39] 之前缺少二元运算符 #75
作者

Marlin-bugfix-2.0.xmodified.zip

好的,我想就是这样,关闭所有内容,重新启动计算机,因为它已经打开了几天……看起来我所有的更改都已保存,它将成为 BTT SKR mini E3 V1.2

令牌“4013 [273, 39] 之前缺少二元运算符 #75

我有同样的问题..我可以编译所有其他固件,但是当试图用这个板编译 marlin 时,它只是简单地以同样的方式出错

令牌“4013 [273, 39] 之前缺少二元运算符 #75
博扬波托尼克 评论了 2019 年 10 月 30 日  

@Vern-K您代码中的预处理器语义错误是:

  • #define MOTHERBOARD MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2在Configuration.h

其他配置错误/建议:
在 platformio.ini 中:

  • env_default = STM32F103RC_bigtree应为default_envs = STM32F103RC_bigtree[platformio])
  • #TMCStepper@>=0.5.0,<1.0.0必须是https://github.com/bigtreetech/TMCStepper[common])
  • #Adafruit NeoPixel@1.2.5必须是https://github.com/bigtreetech/Adafruit_NeoPixel[common])
  • platform = ststm32必须是platform = ststm32@5.6.0因为已经有 5.7.0 ( [env:STM32F103RC_bigtree])

在 Configuration.h 中:
//#define SERIAL_PORT_2 -1必须是#define SERIAL_PORT_2 -1(未注释)

通过这些更改,它可以编译。
我还建议检查(变基)最新的 Marlin bugfix-2.0.x,其中有几个修复。您还可以将它与我的bugfix-2.0.x_SKR-mini-E3-V1.2进行比较,我每隔几天从 Marlin 上游重新设置基准,然后(重新)应用最小的配置更改,以便它在 SKR Mini E3 上运行。

令牌“4013 [273, 39] 之前缺少二元运算符 #75
作者
维恩-K 评论了 2019 年 10 月 30 日  

@bojanpotocnik 好的,看看我是否能找到所有东西,我知道我通过说明更改了一些东西,#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2 部分读取就像你已经发布的一样,我只收到一个错误,它显示在boards.h Marlin\src\core. 您是否添加了 Slice Engineering 热敏电阻的信息?我将首先尝试找到这些更改,然后下载新文件,因为如果我要修改我的设置,我应该努力找到解决这个问题的方法……

令牌“4013 [273, 39] 之前缺少二元运算符 #75
作者

令牌“4013 [273, 39] 之前缺少二元运算符 #75
仍然出现相同的错误

令牌“4013 [273, 39] 之前缺少二元运算符 #75
博扬波托尼克 评论了 2019 年 10 月 30 日  

#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2 部分的内容与您发布的一样

抱歉,我以一种可以忽略实际差异的方式编写语义错误描述:

  • #define MOTHERBOARD MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2应该
  • #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2

MOTHERBOARD请注意您的代码中的 double

Marlin-bugfix-2.0.xmodified.zip

预处理器指令直接替换为它们的定义。不幸的是,在 an 中使用未定义的宏将#if替换为 0(除非使用 打开警告-Wundef),这就是为什么检查它们是否甚至用#ifdefor定义很重要#if defined()。Marlin 这样做是为了MOTHERBOARD宏,而不是为了它的内容。

让我们看看代码中发生了什么:

#if defined(MOTHERBOARD) && (MOTHERBOARD == BOARD_BTT_SKR_MINI_E3_V1_2)
    #include "stm32/pins_BTT_SKR_MINI_E3_V1_2.h"
#endif // Actually #elseif, but isolate only this conditional for simplicity

defined(MOTHERBOARD)true因为它确实被定义为MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2
现在是预处理器替换的第一遍,在我们的例子中,宏被替换为它们的定义:

  • #define MOTHERBOARD MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2
  • #define BOARD_BTT_SKR_MINI_E3_V1_2 4013 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)

所以我们有:

#if defined(MOTHERBOARD) && (MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2 == 4013)
    #include "stm32/pins_BTT_SKR_MINI_E3_V1_2.h"
#endif

现在是第二遍,因为仍有要替换的宏。请注意,MOTHERBOARD在 处仍未定义#define MOTHERBOARD MOTHERBOARD BOARD_BT...,因此将其替换为 0:

#if defined(MOTHERBOARD) && (0 4013 == 4013)
    #include "stm32/pins_BTT_SKR_MINI_E3_V1_2.h"
#endif

现在预处理器看到:

#if (0 4013 == 4013)

就像 – 之前缺少一个运算符4013– 它可能是例如0 + 40130 * 40130 || 4013,0 && 4013或什么?它不知道该怎么做,但它会尽力帮助您 – 向您展示缺少的运算符在令牌前面,并向4013您指出此令牌的来源(定义BOARD_BTT_SKR_MINI_E3_V1_2)。

令牌“4013 [273, 39] 之前缺少二元运算符 #75
作者

@bojanpotocnik谢谢,这是成功的,但确实出现了其他 5 个错误,这是我应该留下的东西吗,或者我应该在哪里评论什么来摆脱它们?现在,如果我点击保存,它应该将它保存在主文件夹中,所以当需要加载它时,我只需打开它并放入文件(必须重新观看视频才能看到文件名)并将其放入 SD 卡并放入输入并打开电源?我应该在哪里仔细检查#67温度传感器的信息以确保它具有正确的信息?
令牌“4013 [273, 39] 之前缺少二元运算符 #75

再次感谢,对我来说有点糟糕,没有马上抓住双主板……现在我只需要仔细检查我随主板一起提供的 TFT35 的东西