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
相关推荐
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
✎ ﹏梦醒͜ღ҉繁华落℘1 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
国产化创客1 天前
ESP32 CameraWebServer 原生摄像头项目全解析
物联网·开源·嵌入式·实时音视频·智能硬件
牛根生同志1 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
goldenrolan1 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
CC城子1 天前
STM32H7_FDCAN 驱动笔记
stm32·can·canfd
意法半导体STM321 天前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
w4ysonch1 天前
我手搓了一套适用于任何嵌入式项目的跨线程通信API
嵌入式
海砥装备HardAus1 天前
大载重工业无人机动力容错控制:单电机失效下的应急重构算法设计
算法·重构·嵌入式·无人机
雾削木1 天前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件