STM32F103系列USB的学习过程及使用心得(一)(概括篇)

13 篇文章 1 订阅
3 篇文章 0 订阅

一、我的目地:

对于通信技术,在掌握stm32的spi,iic,USART等后,发现STM32的USB也是很好用的,对于一般的低速USB通讯任务(<1MB/s)还是可以胜任的,现在也有很多专用于USB通信的芯片,性能高于STM32的USB,但stm32的USB外设集成在了主芯片上,很便于开发。

二、我的学习过程:

1、移植官方库:

(1)官方库下载后,需要根据头文件路径,设置“Option for Target”的“C/C++”选项下的“include path",之后选择自己MDK已安装的芯片类型,就可以编译了。

(2)对于官例,参照官方的说明文档,调试基本都可以成功,但是由于st的win7驱动做的不是很好,对于usb转串口和音频输出的例程可能调试不成功。如果需要开发Windows驱动的话,这方面的知识我还在学习……Orz

(3)对于我来说,官例的HID和Mass Storage是比较有用的,因为不用开发驱动(/ □ \),所以我只认真看了这俩个的官例。

2、学习USB协议

(1)移植好STM32的官例后,想根据自己的需求更改成自己的程序,就需要学习USB的协议了,查阅USB官网,下载USB2.0的协议和HID的协议啃一啃英文文档。

(2)在网上搜索相关USB协议的内容,论坛和电子书之类的,简单列一下我看过的比较好的一些资源,学习协议的话先看《圈圈教你玩USB》,了解一下整体开发流程,之后在看一些嵌入式开发USB的书,如《USB应用开发实例详解》和《计算机USB系统原理及其主-从机设计》,学习之后能自己编写一下上下位机的通信软件,对学习USB协议会有所帮助。

3、根据需求开发自己的上下位机

(1)开发上位机,用Windows的HID相关的API,开发一个基本的USB-HID通信收发程序。

(2)根据stm32的官例修改些文件,但主要是要注意修改stm32的端点收发地址,在usb_conf.h里,各个端点的地址间隔为64,及0x40,否则会丢数据的,这块而坑了我好久……(/ □ \)

(3)按照HID的协议标准写好自己的描述符,这块儿知识比较杂,可以参照网上的知识,先能用再说,弄懂的话需要花些功夫啊……Orz

(4)之后就是写一些数据处理了,对于stm32的全速hid设备,使用中断协议收发数据,一包最大长度64字节,很多网上的大于64字节传输例子都是拆包实现的,这块儿也有待深学stm32的底层。


最近刚开始写博客,本文主要是记录我自己问题和经历,有问题大家可以互相交流一下o(∩_∩)o 

  • 13
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值