评论
您是否更改了 config.h 中的 N_AXIS? |
嗨安德鲁马尔斯, 我没有想到这一点,但我只是将其更改为 6,并且收到“不支持此配置”。我怀疑因为我已经构建了一个自定义板,它没有与其他板链接并且被限制构建 6 个独立轴。 干杯 |
我已经注释掉了配置错误行,但现在收到此错误: #error 中断使能输入引脚必须具有唯一的引脚号! 每个 I/O 都是唯一的。 我希望有一种方法可以不局限于特定的板子 |
这与董事会无关。这是一个 STM32 的东西,只有 16 个中断,每个中断都需要一个唯一的编号。IE PA2 和 PB2 不能同时是中断引脚。 |
感谢更新。 我不太擅长这个,但这是否意味着输入引脚(例如限制、探测、保持)可以在任何端口上,但只能使用 0 到 15 一次(即 PC0、PB1、PC2、PC3、PA4、 ETC)? 干杯 |
您知道在将引脚分配给功能(例如限制引脚)时我需要遵循的任何特定逻辑规则吗? 任何建议将不胜感激。 干杯 |
是的,像这样。 |
对于这个 MCU(实际上是所有支持的 STM32 MCU),一个特定的规则是
对于输入引脚(控制和限制)。探头输入被轮询并且可以在任何引脚上。支持轮询 Z 限制输入,但最好避免这种情况。 UART 引脚(用于串行端口)也受到代码和 MCU 的限制。主轴 PWM 输出相同。 仅供参考,如果您在地图文件中定义了 M3-M5,则可以配置联动轴,如果这些电机具有相应的限制输入,则也可以进行自动平方。 |
太棒了,感谢您的反馈。我在 IDE 中尝试了一些变体,初始错误不再存在,但我收到了这个错误: ‘->’ 的无效类型参数(有 ‘uint32_t’ {aka ‘volatile long unsigned int’})driver.h /GRBL Driver STM32F401/Inc line 46 C/C++ Problem 干杯 |
这可能是由于您的电路板映射文件中的映射定义不正确。 |
好,谢谢。 我会尝试一些不同的变化。 干杯 |
很快,如果我想将它们作为独立的轴(A、B 和 C)运行,它们是否仍需要分别定义为 M3、M4 和 M5? 干杯 |
是的。 |
好的。 我发现如果我取消注释轴的联动和自动方块,则不会出现之前的错误。我想我做错了什么,但如果我想运行完全独立的轴,我似乎无法解决错误。 干杯 |
贴出你的地图文件,我看看。 |
#define X_STEP_PORT GPIOA //定义步进方向输出引脚。 // 定义步进驱动器启用/禁用输出引脚。 #define X_ENABLE_PORT GPIOH //定义归位/硬限位开关输入引脚。 #define M3_AVAILABLE //定义主轴使能和主轴方向输出引脚。 //定义主轴PWM输出引脚。 //定义洪水和喷雾冷却剂启用输出引脚。 // 定义用户控制(循环启动、复位、进给保持)输入引脚。 //定义探头开关输入引脚。 #if SDCARD_ENABLE #define HAS_IOPORTS |
您应该以与其他驱动程序相同的方式为 M3-M5 添加定义,例如:
STM32F4xx/Inc/btt_skr_pro_v1_1_map.h 第 80 至 117 行 2f2bad6
这是因为在幕后进行了一些预处理器魔术来创建适合driver.c使用的定义。 |
好的。地图文件已更新,但仍存在上述相同错误。 //定义联动轴或A轴步进脉冲和步进方向输出引脚。 //定义联动轴或B轴步进脉冲和步进方向输出引脚。 //定义联动轴或C轴步进脉冲和步进方向输出引脚。 |
我刚刚将“N_AXIS 6”更改为“N_AXIS 5”,固件编译没有错误,但 M3 和 M4 显示为灰色 |
定义 C 轴时, driver.c中会弹出一个错误:
第 577 行 2f2bad6
这是正确的代码:
对于那个很抱歉。
有时(经常?)您必须在更改配置后重建索引,右键单击项目并从菜单中选择索引 > 重建。 |
Legand:编译无误。 我可能正在考虑将该板商业化,并想知道是否有可能(通过 MCU 上的备用引脚)在 3、4、5、6 轴之间切换和/或将普通轴转换为联动轴而无需重新刷新固件。 使用 3 个备用引脚,它可以配置多达 8 种不同的方式。 |
不,不是没有对核心和所有驱动程序进行重大重写。 |
好的。 再次感谢。你帮了大忙。 干杯,周末愉快 |
嗨 terjeio,
我希望你一切都好。
我使用 STM32F401RCT6 MCU 设计并构建了一个 6 轴板,并修改了 M3、M4 和 M5 的固件 [此时没有联动输出],编译没有错误。
当我启动 IOSender 时,我只能看到 3 个轴,并且想知道 IOSender 或核心固件是否有任何限制以允许 6 个独立轴。
干杯,祝你有美好的一天
乔治