STM32实现SPI转USB虚拟串口输出(实测40M时钟不丢包)

背景

在使用某一特定MCU时,其本身并没有高速USB这种高速外设,但是突然又有高速输出日志信息的需求,怎么办呢?

这时可以考虑SPI接口,因为其速率一般可达几十兆,但是PC并不能直接SPI通信,需要一个SPI转USB虚拟串口的中间设备

实现

MCU <==SPI==>STM32F4<==>USB PHY<==>PC

效果

MCU端SPI时钟40M,满速发送,实测PC端接收长时间不丢包

需要整套方案的请私信

c 复制代码
运行: 60779 秒 | 总接收: 250085247866 字节 | 速率: 4018.720 KB/s | 32.921 Mbps | 收到 244223874 包 | 丢了 0 包 | 当前包序 244223874
运行: 60780 秒 | 总接收: 250089369708 字节 | 速率: 4018.871 KB/s | 32.923 Mbps | 收到 244227900 包 | 丢了 0 包 | 当前包序 244227900
运行: 60781 秒 | 总接收: 250093487675 字节 | 速率: 4019.220 KB/s | 32.925 Mbps | 收到 244231921 包 | 丢了 0 包 | 当前包序 244231921
运行: 60782 秒 | 总接收: 250097605492 字节 | 速率: 4018.964 KB/s | 32.923 Mbps | 收到 244235942 包 | 丢了 0 包 | 当前包序 244235942
运行: 60783 秒 | 总接收: 250101727022 字节 | 速率: 4018.798 KB/s | 32.922 Mbps | 收到 244239967 包 | 丢了 0 包 | 当前包序 244239967
运行: 60784 秒 | 总接收: 250105844699 字节 | 速率: 4019.015 KB/s | 32.924 Mbps | 收到 244243988 包 | 丢了 0 包 | 当前包序 244243988
运行: 60785 秒 | 总接收: 250109961933 字节 | 速率: 4018.707 KB/s | 32.921 Mbps | 收到 244248009 包 | 丢了 0 包 | 当前包序 244248009
运行: 60786 秒 | 总接收: 250114083951 字节 | 速率: 4019.184 KB/s | 32.925 Mbps | 收到 244252035 包 | 丢了 0 包 | 当前包序 244252035
运行: 60787 秒 | 总接收: 250118202724 字节 | 速率: 4018.681 KB/s | 32.921 Mbps | 收到 244256057 包 | 丢了 0 包 | 当前包序 244256057
相关推荐
La Pulga12 小时前
【STM32】USART串口(上)
c语言·stm32·单片机·嵌入式硬件·mcu
茯苓gao12 小时前
STM32G4 电流环闭环(二) 霍尔有感运行
笔记·stm32·单片机·嵌入式硬件·学习
涂山苏苏⁠12 小时前
STM32软件I2C读写AT24C64
stm32·单片机·at24c64
lingzhilab13 小时前
零知IDE——基于STM32F407VET6和MCP2515实现CAN通信与数据采集
stm32·单片机·嵌入式硬件
big\hero13 小时前
基于STM32设计的智能手环(ESP8266+华为云IOT)
stm32·物联网·华为云
明飞198715 小时前
android-USB-STM32
stm32
GilgameshJSS16 小时前
STM32H743-ARM例程2-UART命令控制LED
arm开发·stm32·单片机·嵌入式硬件
大聪明-PLUS18 小时前
为未知 USB 设备编写 Linux 内核驱动程序
linux·嵌入式·arm·smarc
糖糖单片机设计20 小时前
硬件开发_基于STM32单片机的汽车急控系统
stm32·单片机·嵌入式硬件·物联网·汽车·51单片机
阿华学长单片机设计1 天前
【开源】基于STM32的智能车尾灯
stm32·单片机·嵌入式硬件