开源改变世界!!

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22

推推 grbl 2年前 (2023-02-09) 163次浏览
关闭
dlarue 打开了这个问题 2022 年 9 月 29 日 · 10 条评论
关闭

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出#22

dlarue 打开了这个问题 2022 年 9 月 29 日 · 10 条评论

评论

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22

我弄清楚了 ioc 文件的用途并将其加载到 CubeIDE 中加载了引脚分配的可视化,我在 PA9 上看到了 USART_TX,在 PA10 上看到了 USART_RX。我构建并上传了固件并将 3.3v FTDI Rx 引脚连接到 PA9,但没有看到 grbl 输出。
我在 config.h 中将兼容性设置为 1,我尝试将 USB_ENABLE 设置为 0 和 1,但都没有导致任何 grbl 标头回显 USART_TX 引脚。

为了进行测试,我上传了一个 grbl32 固件,在开机时看到了 grbl 设置和版本转储。所以板子和辅助端口是可操作的。

CubeIDE 符号:
USE_HAL_DRIVER
STM32F103xB
RX_BUFFER_SIZE 512
NVS_SIZE 1536
NO_SETTINGS_DESCRIPTIONS
OVERRIDE_MY_MACHINE
BOARD_CNC3040
USB_ENABLE 1
N_AXIS 3

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者
德拉鲁 评论了 2022 年 9 月 29 日  

我注意到在 my_machine.h 中有“#define USB_SERIAL_CDC 1”和注释说明要为 UART 通信注释掉它,
但这没有任何区别。我还在符号中设置了 USB_ENABLE = 0,但尝试将 USB_ENABLE 设置为 1,但仍然没有在 UART 上输出 grbl。

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
贡献者

由于与其他一些框架冲突,该符号USB_ENABLE不再在 grblHAL 中使用USB_SERIAL_CDC,请按照您的发现使用。当USB_SERIAL_CDC 未定义或设置为 0 时,UART 通信应为默认值。检查这一点的一种方法是查看代码的哪一部分在driver.c中编译:

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22

在这里你可以看到usbInit()它是灰色的并且serialInit()处于活动状态。请注意,有时灰色部分可能是错误的,在IDE中右键单击项目文件夹并选择Index > Rebuild以确保它是正确的。

你有ST-Link并且可以设置断点吗?serialWriteS()serial.c中是第一个要检查的地方,它曾经被调用过吗?如果不是,董事会是否出现硬故障?按暂停按钮检查是否是这样。

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者

我检查了一下,它正在流过 stream_connect(serialInit()) 并确保我删除了 USB_ENABLE 并在 my_machine.h 中设置了 USB_SERIAL_CDC 0,但串行输出上仍然没有任何内容。

我正在使用 ST-Link 上传固件,但还不知道如何使用它来设置断点。工作起来会很方便。目前我只通过 OpenOCD 使用 ST-Link 上传代码。我会看看我是否能弄清楚如何进行调试。

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
贡献者

我删除了 USB_ENABLE 并在 my_machine.h 中设置了 USB_SERIAL_CDC 0

我假设您从 IDE 符号中删除了 OVERRIDE_MY_MACHINE 然后…

要设置断点,只需双击行号左侧:

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者

我只是通过确保它在两个地方来掩盖我的 ars。:-)

我有调试工作,它在 serialWriteS() 的第 103 行中断

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者
德拉鲁 评论了 2022 年 9 月 29 日  

似乎想要打印“error:7”

哇,这很容易设置……

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
贡献者

错误 7 是无法从闪存或 EEPROM 读取设置 – 我相信我看到该板安装了 EEPROM,但可能通过 SPI 接口?grblHAL 支持 I2C EEPROM。

如果你发送一个 ‘?’ 你在 serialWriteS 中得到新的输出吗?
您还可以在 USART1_IRQHandler 中设置断点以查看 RX 和 TX 中断是否触发。

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者

我正在 Bluepill 板上测试这个,所以没有外部 EEPROM。我将连接我的 FTDI 板(3.3V)和 minicom,看看是否有任何反应。

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者
德拉鲁 评论了 2022 年 9 月 29 日  

好的,所以这是不同的。它处于调试模式,我连接了 FTDI 板,现在我得到了东西!


错误:7

Grbl 1.1f [‘$’寻求帮助]
[MSG:’$H’|’$X’解锁]
?<Alarm|MPos:0.000,0.000,0.000|Bf:35,512|FS:0,0|Pn:PXYZRHS |Ov:100,100,100>

$$ 给我设置。
$$
$0=10.0
$1=25
$2=0
$3=0
$4=7
$5=0
$6=0
$9=1
$10=511
$11=0.010
$12=0.002
$13=0
$14=0
$15=0
$16=0
$17=0
$18=0
$19=0
$20=0
$21=0
$22=0
$23=0
$24=25.0
$25=500.0
$26=250
$27=1.000
$28=0.100
$29=0.0
$30=1000.000
$31=0.000
$32=0
$33=5000.0
$34= 0.0
$35=0.0
$36=100.0
$37=0
$39=1
$40=0
$43=1
$44=4
$45=3
$46=0
$62=0
$63=2
$64=0
$65=0
$100=250.000
$101=250.000
$102=250.000
$110=500.000
$111=500.000
$112=500.000
$120=10.000
$ 101=1 $3.020 $120 $ =
1020
200.000
$131=200.000
$132=200.000
$341=0
$342=30.0
$343=25.0
$344=200.0
$345=100.0
$384=0

无论是否设置了 USB_ENABLE,都无法从 USART 获得任何输出 #22
作者
德拉鲁 评论了 2022 年 9 月 29 日  

它将通过调试器单步运行或仅运行,但在通过 USB 供电时不会运行。
我意识到固件大小再次超过 64K(111K)并且无法弄清楚。似乎单步执行或通过调试运行实际上是在运行时加载代码。好吧,我去看看除了 openocd 之外是否还有其他程序员在附近,STM 制造了一个,所以我安装了它并刷新了 111K 图像,现在 Bluepill 使用 USB 电源运行,FTDI 连接到 a9 和 a10。

这花了一段时间,但我现在可以进行在线调试,并且有另一个程序员选择。

下一步是弄清楚如何将 PWM/主轴移动到 PB0。