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
相关推荐
多看多敲多思考9 小时前
华润微CS32ME10 MCU使用教程(2)---CS32ME10之UART串口模块使用
stm32·单片机·嵌入式硬件·mcu
黑白园10 小时前
STM32系统时钟由72M修改为36M验证示例
stm32·单片机·嵌入式硬件
左手厨刀右手茼蒿11 小时前
Linux 内核中的设备驱动开发:从字符设备到网络设备
linux·嵌入式·系统内核
LCG元11 小时前
基于ARM7的LCD设计与实现:S3C4510B通用IO口控制液晶模块
stm32·单片机·嵌入式硬件
山后太阳11 小时前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件
Ww.xh12 小时前
STM32按键去抖动软件实现详解
stm32·单片机·嵌入式硬件
ghie909012 小时前
基于STM32的CAN通信完整例程(HAL库实现)
stm32·单片机·嵌入式硬件
lzj_pxxw12 小时前
W25Q64存储芯片 软件设计刚需常识
stm32·单片机·嵌入式硬件·mcu·学习
吃米饭18 小时前
HC32L021C8UB 移植 FreeRTOS
stm32·嵌入式·freertos·rtos
振南的单片机世界18 小时前
开漏输出:只能拉低,不能拉高,高电平靠“外部”帮忙
stm32·单片机·嵌入式硬件