cubemx 读卡器_STM32CubeMX系列教程25:USB Device

这篇教程介绍了如何使用STM32CubeMX配置STM32F746系列芯片的USB Device功能,涉及USB OTG FS接口、USB CDC(通讯设备类)和USB MSC(大容量存储设备类)。通过实例展示了USB设备库的使用,包括虚拟串口通信和模拟USB存储设备。
摘要由CSDN通过智能技术生成

本章不打算详细讲解USB的协议,本章只是介绍如何通过STM32CubeMX软件生成应用程序。

在看本教程之前建议先看ST官方关于USB的培训视频,示例

一、USB简介stm32F746系列芯片有USB_OTG_FS和USB_OTG_HS两种接口,FS为全速,速度12M Bit/s,HS为高速,最高速度为480M Bit/s,此时需要外接USB HS PHY,例如USB3300。HS接口也可以作为FS接口使用。由于FS和HS接口使用是相同的USB设备库,只是初始化时配置的引脚不一样,本章以FS接口为例讲解USB设备库的使用。以下为USB OTG FS的电路图:

USB只要由USB_DM和USB_DP两根线差分传输。OTG_ID线用来判断为主设备或时从设备的,作为OTG设备的时候使用。MIC2025/75为USB电源管理芯片,当作为设备是,从外部取电源,VBUSEN(PE2)要设置为高。当作为主机时,要拉低,USB口输出电压给从设备。

二、USB CDC

这一节介绍usb作为通讯设备类(Communication Device Class),通过USB虚拟串口通信。程序在LCD滚动显示字符工程的基础上修改,复制工程修改文件夹名。打开STM32cubeMX的工程文件重新配置,USB_OTG_FS选择设备。

配置系统时钟为216MHz,USB的时钟频率为48MHz.

开启USB中间件,选择虚拟串口。

USB参数配置中 VBUS  sensing 选择失能,其他为默认设置。

中间件USB设备配置也不用修改,默认的配置。

设备描述符设置也不需修改,为默认设置。

软件会默认开启USB中断,此处也为默认优先级,不作修改。

生成报告以及初始化代码,编译程序。工程中多出如下文件,其中最后四个为USB设备的库文件。

usb_device.c里面仅包含一个USB设备函数初始化函数MX_USB_DEVICE_Init(),在程序开始时调用。

usbd_cdc_if.c为USB的CDC类应用层文件,里面包含虚拟串口的接收,发送和控制等函数。

usb_desc.c包含USB的描述符,以及USB枚举处理等函数。

usb_conf.com为USB管脚配置文件,包含引USB引脚初始化以及参数设置,中断回调函数等。

打开usbd_cdc_if.c文件,找到虚拟串口接收函数。

static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)

{

/* USER CODE BEGIN 6 */

USBD_CDC_SetRxBuffer(hUsbDevice_0, &Buf[0]);

USBD_CDC_ReceivePacket(hUsbDevice_0);

return (USBD_OK);

/* USER CODE END 6 */

}

修改接收处理函数,接收到的字符打印输出在LCD屏幕上。

static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)

{

/* USER CODE BEGIN 6 */

uint8_t result = USBD_OK;

uint8_t msg[Len[0]+1];

uint32_t i;

result = USBD_CDC_ReceivePacket(&hUsbDeviceFS);

for(i=0;i

如下为发送函数,程序中先设置发送字符,然后发送包。这里注意一点,Cube软件初始化的USB结构体是hUsbDeviceFS,这里操作的结构体是hUsbD

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值