我在 Nucleo‑F446ZE 开发板上使用 SPI 内置 Bootloader 下发命令时每隔一条命令就收不到应答,奇偶交替,一条正常、一条失败。
以 GET_VERSION命令为例,第一次执行的收发情况如下:
MOSI(主机输出) MISO(从机输出)
0x5A 0xA5
0x01 0xA5
0xFE 0xA5
第二次再发送同一命令,通信就全部正常:
MOSI(主机输出) MISO(从机输出)
0x5A 0x79 // 帧起始应答
0x01 0x79 // 命令字节应答
0xFE 0x79 // 命令取反字节应答
0x00 0x79 // 应答帧
0x00 0x79
0x79 0x79
0x00 0x79 // 哑读
0x00 0x11 // 版本号
0x00 0x79 // 应答帧
0x00 0x79
0x79 0x79
很奇怪,上一条命令明明已经以 0x79 应答正常结束;但是紧接着再发送下一条命令起始字节 0x5A 的时候,从机返回的却是 0xA5,而不是0x79。
执行 GET以及 ERASE命令也会出现完全相同的故障。
|
|