现在使用的STM32L053R8T6单片机带有USB接口,原先一直使用UART转USB芯片来完成USB功能的支持,现在这款单片机带了就希望使用以下。由于已经建立了自己的工程目录,再重新使用STM32CubeMX生成的工程文件,重新建立是不显示的,所以本文探索将USB驱动文件移植到自己项目中的方法,我使用的是USB的CDCD类,步骤如下:

    1、使用STM32CubeMX使能USB,如下图所示:



    2、设置时钟,USB需要48M时钟,使用内部和外部均可,我这里使用外部时钟。


    3、生成工程文件。

    4、在自己的工程目录中加入如下图所示的2个文件,如果此2个文件不存在,则从新生成的工程目录中复制即可(包含头文件)。


    5、在自己的工程目录中加入以下4个文件,这4个文件需从新生成的工程目录中复制(包含头文件)。


    6、在自己的工程目录中加入或更新以下文件,USB开头的文件需要从新生成的工程目录中复制(包含头文件),其余文件需要更新。


    7、如果使用C++进行程序设计,按照STM32L0开发笔记4: 解决使用--CPP11编译USB驱动报错问题对代码进行调整。

    8、如果希望分层次编译,可按照STM32L0开发笔记3: 使用静态库加快Keil编译速度方法,生成静态库。

    9、更新时钟设置程序,一定要更新。

    10、在main.cpp中,包含usb_device.h文件,并调用MX_USB_DEVICE_Init函数初始化USB,样例程序如下:


#include "include.h"

#include "usb_device.h"

 

CTarget Target;

 

boolean bMilliSecond_1000 = FALSE;

boolean bMilliSecond_100 = FALSE;

 

int main(void)

{

uint8_t temp[3] = {0xC1, 0xC1, 0xC1};

MX_USB_DEVICE_Init();

  while (1)

  {

if (bMilliSecond_1000 == TRUE)

{

bMilliSecond_1000 = FALSE;

Target.HAL.LED.Turn();

Target.HAL.TestUart1.SendData(temp, 3);

}

if (bMilliSecond_100 == TRUE)

{

bMilliSecond_100 = FALSE;

Target.HAL.E0.Turn();

Target.HAL.E1.Turn();

Target.HAL.E2.Turn();

Target.HAL.E3.Turn();

}

if (Target.HAL.TestUart1.IsReceivedData() == TRUE)

{

Target.HAL.TestUart2.SendData(Target.HAL.TestUart1.u8_Buffer, Target.HAL.TestUart1.u16_Number);

}

  }

}

    11、对文件进行编译,下载程序。


    12、硬件USB的USB_DP引脚需要1.5K上拉,务必注意,我就没有上拉,后来在PCB上飞的线。


    13、进入ST的官网,搜索32102,下载CDC驱动。


    14、解压缩后,根据自己的操作系统,选择相应的驱动库进行安装。

    15、如果一切正常,可以将设备通过USB口接入计算机,按照提示安装完驱动程序后,就可以看到相应的虚拟串口了。


    至此,一切完成。


关键字:STM32L0  USB驱动  移植 引用地址:STM32L0开发笔记8: USB驱动的移植

上一篇:STM32L0开发笔记9: 手动添加驱动文件
下一篇:STM32L0开发笔记7: STM32L053R8T6的keil配置

推荐阅读

提起网络电视盒子这个家家必备的看片神器,很多用户都知道这个行业里的翘楚:泰捷网络电视盒子。在竞争如此激烈的行业背景下,泰捷网络电视盒子为什么能够爆火于市,在京东POP商家排名第一,成为行业里重复购买率最高的盒子,实在是耐人寻味。解所疑,答所惑,今天,我们就带着大家一起看看爆火的泰捷网络电视盒子,究竟有什么魔力,同时被媒体和用户称之...
在第二届全球IC企业家大会暨第十七届中国国际半导体博览会(IC China 2019)上,英伟达全球副总裁潘迪先生对于AI的发展发表了自己的见解。他强调,虽然AI这个话题已经谈了很久,但是整个市场潜力不到一位数,传统企业AI渗透率也不到3%或者4%。因此,发展AI需要更多方面的支持和“拥抱”。 AI和半导体都是50年代的产物,多年来,它们各自发展,互不干扰...
一年多以前关系一度陷入冰点的松下和特斯拉,如今有回暖势头。据国外科技媒体Techcrunch报道,日本松下计划扩大对特斯拉(Tesla)在美国内华达州的电动车用锂电池工厂Gigafactory 1的投资,将在该工厂再增加一条产线,这不仅将进一步提高电池的能量密度和蓄电容量,还可将年产能提高 10%,从现在的 35GWh增加到39GWh。松下是特斯拉最大的车用锂电池供应...
跌落神坛的“扫地茅”还能重回巅峰吗?8月27日,科沃斯(603486.SH)发布2021年半年报显示,上半年营收53.59亿元,同比增长123.11%;净利8.50亿元,同比增长543.25%。尽管业绩亮眼,但二级资本市场似乎并不买单。科沃斯在8月30日、31日连续大幅下跌,跌幅分别为10%、7.35%。5倍的净利润增长,为何没有提振“扫地茅”的股价?在「不二研究」看来...

史海拾趣

问答坊 | AI 解惑

【一个快速查找datasheet 的小工具来自datasheet5.com】

本帖最后由 paulhyde 于 2014-9-15 04:21 编辑 一个很好的下载datasheet的小工具,避免大赛的时候到处找资料 不到1M,但功能超强,基本所有的资料都可以下载到哦 datasheet5.com  …

查看全部问答∨

虚拟机的问题,古怪!

写了个SHELL,如下: #!/bin/bash hello="$(dirname ./configure)" echo  $hello 运行结果为:空行 在终端下输入 hello="$(dirname ./configure)" echo $hello 运行结果为:. 奇怪的是:shell下结果是错误的,终端下是正 ...…

查看全部问答∨

MDK自带flash自带烧写程序的问题

也没有人出现和我类似的问题? 调试2410板子,外接的是K9F 1208nandflash,使用download功能烧录一个bin文件(比如为34KB)到nand的block0开始的区域 这个肯定已经超过4K SRAM大小了。在烧录后,MDK报错:contents missmatch :at 0x4000H  ...…

查看全部问答∨

tornado2.2 for arm 用不了了!!!!

一段时间没用,结果再用的时候提示 下面图片的情况 error:simulator failed to initialize before timeout 重装也没有用:(郁闷死了 是什么原因啊? [s:6]…

查看全部问答∨

MSP430 时钟设置疑问

刚开始学些,有个问题总没有搞清楚,请教各位大侠。 <<<<< >>>>>>> 部分为不清楚的地方,恳请指教一下。多谢了 #include<msp430x14x.h> /* REGISTER: BCSCTL1 XT2OFF XTS DIVA.1 DIVA.0 ...…

查看全部问答∨

pic单片机 RA口和RB口区别

pic单片机 RA口和RB口区别在那里呢?&nbsp;&nbsp;RB口可以作为键控端,可RA口却不能。(是仿真得出的结论)谁能说说是为什么?欢迎交流!…

查看全部问答∨

求助 求助 急需各位大神帮助看一下程序

中断出来的PWM怎么没有时间差啊 祈求各位大神帮助#include <msp430x14x.h>#include <math.h>#define uint unsigned int#define uchar unsigned char  #define ulong  unsigned long#define keyin    (P1IN & 0x ...…

查看全部问答∨

串口通讯

发送没有问题,但是接受有问题。断点中断一直停在此处,if(UARTCharsAvail(UART1_BASE))?是电路问题,还是串口配置可能有误/求解!!!!!!!!!!!!!…

查看全部问答∨

晒心得+初识STM32F0-Discovery

STM32F0-Discovery是ST意法半导体公司推出的最新一款开发板探索套件。Discovery探索套件是ST开发的系列低成本开发评估板,通常集成了微控制器的最小系统和板载的仿真工具,形成一个完整的开发平台。这次收到的STM32F0-Discovery是最新的基于ARM Cor ...…

查看全部问答∨

【WEBENCH设计】多路电压(±15V0.5A ,12V1A,3.3V0.5A)的系统供电方案

1.【方案介绍】本方案供电方案解决的是:±15V给一个OP运放进行双电源供电,12V是给系统的负载供电,3.3V是系统的控制电路430单片机供电。方案用WEBENCH软件自动生成,具有低成本,高质量,高可靠性的优点;该方案输入输出为:DC-DC。设置输入电压 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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