我正在尝试访问Nucleo L476RG“从”板的引导程序。
“主”板是Nucleo L496ZG板。在我的程序中,我在主板上定义了一个DigitalOut
,extBoot0
,一个extReset
。这些断开到从属板上的boot0
和NRST
引脚。另外,我在主控板上有一个名为Serial
的{{1}}实例,该实例连接到从属板上的UART2。同样,似乎已经预设置了BOOT1来运行引导加载程序,即它被断言为低电平并且不能更改为运行SRAM中的任何内容。
当前,在usart
中,我将BOOT0设置为高电平并将NRST降低为0.1秒,然后将其恢复为高电平。我观察到运行此功能确实会重置设备并阻止程序运行。
在resetToBootloader
中,我按照AN2606格式化串行:8位,偶校验,1个停止位。然后,我通过该串行总线将0x7F发送到从板。我没有收到任何响应,并且使用了逻辑分析仪,我已经确认从机将其放在正确的引脚上,并且从机的TX输入没有变化。要启动引导程序,还需要做些什么?
这是我的相关代码:
initBootloader
答案 0 :(得分:0)
我相信我是通过使用USART1而不是USART2来解决此问题的。该文档指出,USART1和USART2都可以使用,但是我只从USART1收到0x79。
此外,我还必须从Serial
切换到UARTSerial
。从机首先发送一个错误的数据包,0xC0带有错误的奇偶校验位。不确定为什么会这样做,但是会导致常规Serial
实例无法处理行进字节。