最近在做一个项目,主板和子板是UART通信。而MCU只有一路UART,这样就没有串口打印来调试了。思来想去,芯片还有很多空余GPIO可以写一个软件模拟SPI。通过SPI把调试信息发出去。然后再搞一块转接板把收到的SPI数据转发到USB CDC。这样在电脑上就可以看到调试信息了。
说干就干,我手上有一块STM32F4-DISC的开发板可以用来作转接板。
顺便说一下,STM32F4-DISC是我在8年前买的。当时连邮费105RMB. 现在某宝一搜都要到170了。
经过几天的调试可以正常工作了。
我把代码上传到了gitee供大家参考。
https://gitee.com/Woody00h/spi_to_cdc
本帖最后由 woody_chen 于 2021-6-30 10:04 编辑
引用: dcexpert 发表于 2021-6-30 12:49 如果只是打印调试信息,只需要tx功能,用GPIO模拟发送也可以,然后通过USB-TTL就可以看了。
UART对时序要求比较高,模拟起来比较困难。弄不好会出现乱码。
SPI模拟起来就容易的多。
引用: woody_chen 发表于 2021-6-30 13:06 UART对时序要求比较高,模拟起来比较困难。弄不好会出现乱码。 SPI模拟起来就容易的多。
UART发送其实还好,用定时器很容易实现,接收部分处理不好才会乱码。