数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2553|回复: 21

[STM] STM32F103基于标准外设库的USB驱动程序

[复制链接]
发表于 2024-5-19 15:03:37 | 显示全部楼层 |阅读模式
本帖最后由 595953427@qq 于 2024-5-19 15:06 编辑

找遍全网都没有找到基于标准外设库的WinUSB程序,大多数能找到的资源都是基于HAL库的,HAL太大,编译速度也慢,还是想用标准外设库,求人不如求己。
经过几天的调试终于把WinUSB调通了,一个工程集成了HID透传,MSC双磁盘,WinUSB透传。


不得不说标准外设库的代码真的是小,通俗易懂,不用操作寄存器,函数名直观明了。
以下是USB HID透传的代码编译结果

以下是USB MSC 双磁盘的编译结果

以下是USB WinUSB的编译结果

以下是USB HID透传测试

以下是USB MSC 双磁盘测试

以下是WinUSB透传测试

以下是烧录文件,所有烧录文件都是基于STM32F103芯片,需要外接8M晶振
以下是USB HID透传的烧录文件


以下是USB MSC双磁盘的烧录文件

以下是USB WinUSB透传的烧录文件



以下是网上找的USB HID透传测试用的上位机软件

由于没有找到USB WinUSB的透传测试上位机软件,所以自己写了一个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +10 收起 理由
上官梦舞 + 10 原創內容

查看全部打赏

发表于 2024-5-19 16:04:24 | 显示全部楼层
本帖最后由 inthsunshine 于 2024-5-19 16:25 编辑

st官网就有啊,技术资料st从来不藏着掖着,我虽早就下载了,但没试过,目前还没usb应用需求
USB驱动单独发布, 没包含在标准库包里,F0-F4都有

STM32F10x, STM32L1xx and STM32F3xx USB full speed device library
下载地址 https://www.st.com/zh/embedded-software/stsw-stm32121.html

STM32F105/7, STM32F2 and STM32F4 USB on-the-go Host and device library
下载地址 https://www.st.com/zh/embedded-software/stsw-stm32046.html

STM32F0x2xx USB FS device library
下载地址 https://www.st.com/zh/embedded-software/stsw-stm32092.html







回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-19 16:54:07 来自手机浏览器 | 显示全部楼层
没有winusb吧
回复 支持 反对

使用道具 举报

发表于 2024-5-20 08:38:48 | 显示全部楼层
用STM32CubeMX只能生成HAL库和LL库,HAL库生成的代码很大。请问LL库与标准库,哪个编译速度快、代码小?
回复 支持 反对

使用道具 举报

发表于 2024-5-20 09:41:40 | 显示全部楼层
lmn2005 发表于 2024-5-20 08:38
用STM32CubeMX只能生成HAL库和LL库,HAL库生成的代码很大。请问LL库与标准库,哪个编译速度快、代码小? ...

各有利弊,st应该继续发布标准库,让用户选择用哪种,标准库止于F4, F7开始就没有

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2024-5-20 11:40:34 | 显示全部楼层
inthsunshine 发表于 2024-5-20 09:41
各有利弊,st应该继续发布标准库,让用户选择用哪种,标准库止于F4, F7开始就没有
...

太详细了,请问STM32F103标准库在官方哪个可以下载?
回复 支持 反对

使用道具 举报

发表于 2024-5-20 12:04:20 | 显示全部楼层
本帖最后由 inthsunshine 于 2024-5-20 12:08 编辑
lmn2005 发表于 2024-5-20 11:40
太详细了,请问STM32F103标准库在官方哪个可以下载?
https://www.st.com/zh/embedded-software/stsw-stm32054.html

其它系列
https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html
回复 支持 反对

使用道具 举报

发表于 2024-5-20 23:26:35 | 显示全部楼层
谢谢分享 还在门外溜达。。。。
回复 支持 反对

使用道具 举报

发表于 2024-5-26 09:49:35 | 显示全部楼层
我已经几年没有用STM32做项目了,现在使用WCH系列RISC-V32芯片,便宜时钟高然后IDE建库太方便,自动代码填充和实时错误检测,已经习惯啦,USB也是搞得飞起,当主机驱动USB设备设计门槛很低.CDC有验证过目前不太敢用于正式项目,通信失败容易导致程序阻塞,还是硬件CH340转接省心驱动也普遍了.
回复 支持 反对

使用道具 举报

发表于 2024-5-27 08:01:27 | 显示全部楼层
当初看了看USB协议感觉好复杂,至今没学会
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-27 09:03:57 | 显示全部楼层
bg4jkl 发表于 2024-5-27 08:01
当初看了看USB协议感觉好复杂,至今没学会

如果只是看看,确实很复杂,实际操作下,移植一下不同芯片的USB程序,找出共通点,也就不复杂了。
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2024-6-28 20:50:28 | 显示全部楼层
当初看了看USB协议感觉好复杂,至今没学会
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-29 00:46:48 | 显示全部楼层
366261061 发表于 2024-6-28 20:50
当初看了看USB协议感觉好复杂,至今没学会

你的方法不对,先根据原厂的程序模版去修改,把程序调通。后面再去慢慢消化USB协议。
USB协议懂不懂没关系,只要会修改描述符,会使用常用的类就行。
回复 支持 反对

使用道具 举报

发表于 2024-7-2 17:08:53 | 显示全部楼层
熟能生巧,这套标准库看起来像是STM32F4x的USB库和STM32F0x,你是从STM32F0Xusb库 挪过来的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-2 20:53:29 | 显示全部楼层
天臆 发表于 2024-7-2 17:08
熟能生巧,这套标准库看起来像是STM32F4x的USB库和STM32F0x,你是从STM32F0Xusb库 挪过来的吧 ...

是的,最早的usb库,代码占用空间很小
回复 支持 反对

使用道具 举报

发表于 2024-7-3 09:10:22 | 显示全部楼层
是否有LL库?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-3 12:34:10 | 显示全部楼层

不管什么库,USB通讯的思路都是一样的,都是各种描述符。
回复 支持 反对

使用道具 举报

发表于 2024-7-3 14:28:24 | 显示全部楼层
同意楼上的观点,接口标准与协议,这是一致的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-3 17:56:02 | 显示全部楼层
USB的描述符分为设备描述符,配置描述符,字符串描述符;配置描述符包含接口描述符,端点描述符。
回复 支持 反对

使用道具 举报

发表于 2024-7-4 09:05:44 | 显示全部楼层
595953427@qq 发表于 2024-7-3 12:34
不管什么库,USB通讯的思路都是一样的,都是各种描述符。

我意思是使用LL库是否代码占用空间会小些
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-24 14:50 , Processed in 0.156000 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表