STM32_USB_CDC学习笔记

USB虚拟串口的接收方式:

USB 虚拟串口的接收采用中断方式,芯片在接收到数据后回触发中断调用CDC_Receive_FS()函数来处理接收到的数据.

USB虚拟串口一次最多接收64个字节的数据,如果收到的数据大于64个字节则会连续多次调用CDC_Receive_FS()函数来处理接收到的数据.

问题:

  1. 每次下载完成程序后,必须重新插拔USB线,PC才能识别到串口设备?

    解决方法:在每次USB初始化之前,配置USB的两个引脚拉低几个ms,即可让PC重新枚举该USB设备.

函数功能

USB发送

USBD_CDC_SetTxBuffer()USBD_CDC_TransmitPacket()函数是启动数据发送过程的一组函数,要成对使用.

  • USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff, uint16_t length) : 将要发送数据的缓存的指针和大小赋值给pdev结构体变量中
  • USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) : 将要发送数据的缓存指针和大小告诉USB发送器,USB会自动发送这些数据.
USB接收

首先在初始化的时候,通过USBD_CDC_SetRxBuffer()函数给USB库指定一个接收缓冲区,让USB控制器收到数据以后可以往里填.

  • CDC_Receive_FS()函数是USB接收中断回调函数.
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值