STM32 USB OTG官方库移植

2018-09-14来源: eefocus 关键字:STM32   USB OTG

实ST公司的官方usb库已经做得很不错了。只是一开始不会用,导致浪费了很多时间。

首先拿到库,需要确认板上的端口资源。

VBUS D- D+ GND 四条线至少要有,但是VBUS不一定要接在芯片端口上。作为从机的话VBUS可以直接拉高到3v以上。电流大小待确认。D-,D+一定要接到芯片的OTG FS HS均可 DM  DP对应 D- D+。作为主机可以不接VBUS,也可将VBUS接到芯片端口作为检测口,此处不明是硬件原因还是什么原因,若使用VBUS检测的话,拔掉usb线会造成JLINK崩溃,因此我将VBUS口作为普通I/O口,查询读取是否连接或失去连接。

OTG_HS想用的话需要外接PHY,若无外接PHY,也将HS口配置成FS口。

确认硬件完毕后,需要确认所需使用的晶振,外部内部均可。STM32F2为例,HSI为16M。则可以直接用HSI来配置 配置出48M的晶振供给USB。此配置可采用ST官方的配置工具来完成,操作简便 ,将配置生成的system_stm32f2xx.c与工程中的替换即可。

时钟确认完毕,接下来需要对USB库进行配置。USB库中有很多例程,此处我是做USB升级方案,则有两种,一种是DFU升级模式,需要配合官方给的DFU Demo上位机软件来使用,第二种是MSC模式,读取U盘。库做的很完善,FATFS已经写进例程。配置主要看是USB_HOST还是USB_DEV抑或是OTG双向模式。目前没有用到双向模式。

模式配置需要在usb_conf.h中修改对应的宏,可以不适用VBUS来检测外设是否插入等,还可以配置使OTG_HS口工作在FS模式下。配置完成后,理论上就移植成功了。


关键字:STM32   USB OTG

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news091441321.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 USART3可以接收无法发送问题
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8学习笔记---串口uart1

使用uart1串口,需要用到stm8s_uart1.c和stm8s_uart1.h两个文件1、建立工程目录结构如下:2、编写uart.h文件如下:#ifndef __UART_H#define __UART_H#include "stm8s.h"#include "stm8s_clk.h"void USART_Configuration(void);   //串口配置函数void UART_send_string(uint8_t *Buffer);//发送一个字符串函数#endif /* __UART_H */3、编写uart.c文件如下:#include "
发表于 2018-09-13

STM32 GPIO——流水灯例程 学习总结

通过控制LED灯,熟悉STM32的存储器结构、地址映射、时钟树、库文件、利用库的方法及开发工程的步骤,建立STM32的开发思想。这是我建立的第一个工程,由于涉及面较广,知识点分散,在此做一个总结。1)为控制LED灯,知道要使用GPIO外设。GPIO(General-Purpose I/O):I/O引脚可以被软件设置成各种不同的功能,如输入或输出。控制LED灯,即控制STM32芯片的I/O引脚电平的高低来实现。2)了解GPIO外设有什么功能,要如何使用。GPIO引脚又被分为GPIOA、GPIOB、...、GPIOG不同的组,每组端口分为0~15共16个不同的引脚,对于不同型号的芯片,端口的组和引脚的数量不同。功能查看参考手册3)获知
发表于 2018-09-13

STM32F103C8T6-LED点亮程序

#include <stm32f10x.h> //----------------------------------------------------------------------------- void mydelay_ms(int ms){    volatile int  i;    int k = ms * 2333 ;    for ( i=0; i<k; i++ ) {        ;   
发表于 2018-09-13

STM32F0在IAR新建工程

1、到官网下载固件库,类似"STM32F0xx_StdPeriph_Lib_V1.5.0",解压得到文件"_htmresc"  "Libraries"  "Projects"   "Utilities".     ①“Libraries\STM32F0xx_StdPeriph_Driver”下的inc与src是底层驱动。     ②“Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates\iar
发表于 2018-09-13

STM32学习笔记之USB库文件分析

;-    文件,是跟stm32的USB相关寄存器相关的代码。看这段代码就要阅读stm32寄存器了。这个函数定义了设置和读取各个寄存器的值或某位的值,具体的看代码。6、usb_sil.c   -   文件。端点具体的接发数据函数就在这里定义。这个文件也很简单,只有三个函数:USB_SIL_Init()初始化USB设备IP和端点;USB_SIL_Write()往选中的端点中写入数据;USB_SIL_Read()从选中的端点中读出数据
发表于 2018-09-13

STM32库文件结构及CMSIS介绍

使用STM32库时,各库文件作用及关系:CMSIS标准介绍:
发表于 2018-09-13

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved