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
相关推荐
芯眼3 小时前
STM32库函数简介(重点)
数据库·c++·stm32·单片机·嵌入式硬件
hallo-ooo3 小时前
【STM32】自定义打印函数
stm32
钰珠AIOT5 小时前
在 stm32 中 volatile unsigned signed 分别有什么作用,分别在什么场景下使用?
stm32·单片机·物联网
wenchm12 小时前
细说STM32单片机FreeRTOS将任务通知用作计数信号量的方法及其应用实例
stm32·单片机·嵌入式硬件
尚久龙12 小时前
STM32接收红外遥控器的遥控信号
stm32·单片机·嵌入式硬件
plmm烟酒僧14 小时前
基于 STM32 的 PC ARGB 风扇控制器设计与实现
stm32·单片机·嵌入式硬件·argb·台式电脑风扇·机箱散热·pwm风扇控制
夜月yeyue14 小时前
手撕I2C和SPI协议实现
linux·c++·stm32·单片机·嵌入式硬件
O。o.尊都假都15 小时前
STM32之串口通信蓝牙(BLE)
stm32·单片机·嵌入式硬件
海绵宝宝的月光宝盒15 小时前
[STM32] 5-1 时钟树(上)
c语言·笔记·stm32·单片机·嵌入式硬件
O。o.尊都假都15 小时前
STM32之串口通信WIFI上云
stm32·单片机·嵌入式硬件