STM32CubeIDE使用全速USB的虚拟串口进行环路测试

目录

一、简介

1.1、开发环境

1.2、实现功能

二、STM32CubeIDE配置

2.1、打开全速USB

 2.2、调用USB库

三、程序解析

3.1、修改usbd_cdc_if.c

 3.2、函数CDC_Receive_FS解析

3.3、函数CDC_Transmit_FS解析


一、简介

1.1、开发环境

STM32CubeIDE V1.10.1。

单片机型号:STM32F767IGT6.

1.2、实现功能

使用STM32CubeIDE配置全速USB为虚拟串口,并修改程序,将接收的数据发送回去。

二、STM32CubeIDE配置

2.1、打开全速USB

选择Connectivity → USB_OTG_FS → Mode → Device_Only。

 时钟树:USB时钟为48MHz。

 2.2、调用USB库

选择Middleware → USB_DEVICE → Class For FS IP → Communication Device Class(Virtual Port Com)。 

 配置完后,即可转换出程序。

三、程序解析

3.1、修改usbd_cdc_if.c

打开USB_DEVICE → App → usbd_cdc_if.c。

在函数CDC_Receive_FS里面,添加语句“CDC_Transmit_FS(Buf,*Len);”,即可实现将收到的数据,再次发送出去。

 3.2、函数CDC_Receive_FS解析

函数CDC_Receive_FS为接收完成的回调函数。

函数带有2个参数Buf和Len。Buf为接收缓存的指针,Len为接收字节长度缓存的指针。

3.3、函数CDC_Transmit_FS解析

函数CDC_Transmit_FS为发送函数。

函数带有2个参数Buf和Len。Buf为发送数据缓存的指针,Len为发送字节长度缓存。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
自己编写STM32USB驱动需要以下步骤: 1. 确定所需的库和工具。需要安装STM32CubeMX、开发工具(如Keil、IAR等)、USB标准库和相关文档。 2. 使用STM32CubeMX工具生成初始化代码。打开STM32CubeMX,在配置向导中选择相应的型号和外设,启用USB功能,并进行必要的配置。生成代码后,将其导入到开发工具中。 3. 在主函数中配置USB相关参数。根据需要设置USB传输速率、传输类型等参数。根据应用需求设置可用的USB端点数。 4. 实现USB中断处理函数。中断函数用于处理USB相关的事件,如连接和断开设备、接收和发送数据等。根据所用的开发工具,实现适当的中断处理函数。 5. 编写USB设备驱动函数。根据设备类型和应用需求,编写实现USB设备驱动的函数。这包括初始化USB设备、发送和接收数据、处理请求和命令等。 6. 添加USB设备描述符。根据应用需求编写USB设备描述符,包括设备描述符、配置描述符、接口描述符以及端点描述符等。这些描述符定义了USB设备的属性和功能,为主机提供与设备通信的必要信息。 7. 对USB传输进行数据收发处理。根据应用需求,在驱动函数中实现USB传输的读写逻辑。这涉及数据缓冲区的管理、数据的解析和处理等。 8. 进行调试和测试使用仿真器或调试工具对编写的驱动程序进行调试和测试。确保驱动程序能够正确地与主机通信,实现所需的数据传输功能。 以上是自己编写STM32USB驱动的基本步骤,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪恒远

感君意气无所惜,一为歌行歌主客

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值