现在使用的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开发笔记9: 手动添加驱动文件
下一篇:STM32L0开发笔记7: STM32L053R8T6的keil配置
推荐阅读
史海拾趣
ECO始终将产品质量视为公司发展的生命线。公司建立了严格的质量管理体系,对生产过程中的每一个环节进行严格把关。此外,ECO还注重品牌形象的塑造,通过广告宣传、客户案例分享等方式提升品牌知名度和美誉度。这些努力使ECO在行业内树立了良好的口碑,吸引了越来越多的优质客户。
AVX一直致力于绿色技术的研发与应用。在数十年的深入研发支持下,AVX的产品为各种绿色技术提供了关键的支持,如风能、太阳能和水力发电等领域。这些技术的应用旨在节省现有能源并创建可靠、价格合理的电子系统,为可持续发展做出了积极贡献。AVX在这一领域的持续投入和创新,使其在绿色技术领域取得了显著成果。
随着电子行业的快速发展,Aborn Electronics意识到只有不断创新才能在竞争中保持领先。公司加大了对研发的投入,引进了一批高素质的研发人才,并在多个技术领域取得了重要突破。其中,一项关于高效能电源管理技术的创新成果,不仅提高了产品的能效比,还为公司带来了可观的经济效益。这一技术的成功应用,进一步提升了Aborn Electronics在行业内的影响力。
FINTEK公司成立于2000年代初,正值半导体技术快速发展的时期。公司初创时,便聚焦于开发高性能的模拟信号处理器(ASP)芯片。创始人带领团队,经过数年的不懈努力,成功研发出了一款具有创新性的ASP芯片,该芯片在功耗、信噪比和信号处理速度上均优于市场同类产品。这一技术突破不仅为公司赢得了首轮融资,也吸引了众多行业巨头的关注,为FINTEK在电子行业的初步立足奠定了坚实的基础。
Delta Electronics成立于1971年,最初只是台湾一家小型电子制造公司。随着技术的不断进步和市场的扩大,公司逐渐开始拓展其业务范围。上世纪90年代初,Delta在中国大陆设立了生产基地,这标志着公司全球扩展战略的重要一步。随后,公司陆续在美国、欧洲、亚洲等地建立了研发中心和生产基地,为全球客户提供优质的电子产品和解决方案。
为了进一步扩大市场份额,Fibrefab开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立生产基地和研发中心,以满足不同地区客户的需求。同时,Fibrefab还积极与全球知名的电信运营商和设备制造商建立合作关系,共同推动光纤通讯技术的发展和应用。这一战略的实施不仅帮助Fibrefab拓展了海外市场,也提升了其品牌影响力和市场竞争力。
【一个快速查找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下结果是错误的,终端下是正 ...… 查看全部问答∨ |
也没有人出现和我类似的问题? 调试2410板子,外接的是K9F 1208nandflash,使用download功能烧录一个bin文件(比如为34KB)到nand的block0开始的区域 这个肯定已经超过4K SRAM大小了。在烧录后,MDK报错:contents missmatch :at 0x4000H ...… 查看全部问答∨ |
一段时间没用,结果再用的时候提示 下面图片的情况 error:simulator failed to initialize before timeout 重装也没有用:(郁闷死了 是什么原因啊? [s:6]… 查看全部问答∨ |
刚开始学些,有个问题总没有搞清楚,请教各位大侠。 <<<<< >>>>>>> 部分为不清楚的地方,恳请指教一下。多谢了 #include<msp430x14x.h> /* REGISTER: BCSCTL1 XT2OFF XTS DIVA.1 DIVA.0 ...… 查看全部问答∨ |
pic单片机 RA口和RB口区别在那里呢? 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 ...… 查看全部问答∨ |
|
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。设置输入电压 ...… 查看全部问答∨ |