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
相关推荐
brave and determined1 天前
MCU学习Day24——STM32G030多路ADC DMA采集深度解析:完全可配置序列器与不完全可配置序列器的陷阱与抉择
stm32·单片机·嵌入式硬件·dma·adc·hal·多通道采集
d111111111d1 天前
通过操作地址,来进行STM32的写入GPIO端口值
stm32·单片机·嵌入式硬件
奔跑吧邓邓子1 天前
【C语言实战(77)】STM32实战:解锁传感器数据采集的C语言奥秘
c语言·stm32·开发实战·传感器数据采集
小刘爱玩单片机1 天前
【stm32简单外设篇】- 土壤湿度传感器
c语言·stm32·单片机·嵌入式硬件
d111111111d1 天前
STM32外设学习--TIM定时器--编码器接口
stm32·嵌入式硬件·学习
某林2121 天前
ROS2与STM32通信详解
stm32·单片机·嵌入式硬件
0南城逆流01 天前
【STM32】知识点介绍三:哈希算法详解
stm32·嵌入式硬件·哈希算法
云山工作室1 天前
基于STM32单片机的正激式开关电源设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·课程设计·毕设
大聪明-PLUS1 天前
嵌入式 Linux 初学者指南 – 第 2 部分
linux·嵌入式·arm·smarc
lingzhilab2 天前
零知IDE——STM32F407VET6驱动SHT40温湿度传感器与ST7789实现智能环境监测系统
stm32·单片机·嵌入式硬件