STM32端点缓冲区

  1. 缓冲区描述表也存在USB_BTABLE中,所以端点缓冲区地址不是从0开始。
  2. 缓冲区地址8字节对齐

STM32 的USB中断状态寄存器

IN端点事件

当IN端点成功执行操作后,USB_ISTR = 0x8004,

表示端点4(EP_ID=4) 发送方向 (DIR=0)  正确传输了(CTR=1)

及发送传输完成后的事件。

STM32的IN端点中断回调是数据上传到PC端成功的回调

EPx_IN_Callback 表示数据发送成功了,IN数据要事先写入发送缓冲区

void EP4_IN_Callback(void)
{PrevXferComplete_ep4 = 1;pr_dbg("EP4_IN_Callback");
}

OUT端点事件

OUT成功执行后,USB_ISTR = 0x8014,

表示端点4(EP_ID=4) 接收方向 (DIR=1)  正确传输了(CTR=1)

及接收传输完成后的事件。

OUT端点接收数据回调 EPx_OUT_Callback

void EP4_OUT_Callback(void)
{uint8_t Receive_Buffer[400];int len = USB_SIL_Read(EP4_OUT, Receive_Buffer);pr_dbg("EP4_OUT_Callback %d",len);SetEPRxStatus(ENDP4, EP_RX_VALID);
}

取走数据后要使能端点接收EP_RX_VALID,否则就收不到数据了

总之

IN和OUT都要事先准备好数据和状态,然后当主机取走数据或者主机发送完数据后,才会触发中断事件。不是通过中断来取走数据。

USB STM32配置相关推荐

  1. STM32配置组合设备(HID+CDC)

    STM32组合设备 STM32配置组合设备(HID+CDC) 1. CDC基础工程,HID基础工程生成 2.USB工程熟悉 2.1 USB初始化 2.2USB中断 2.3 相关结构体 2.3.1 ` ...

  2. STM32配置读取BMP280气压传感器数据

    STM32配置读取BMP280气压传感器数据 BMP280是在BMP180基础上增强的绝对气压传感器,在飞控领域的高度识别方面应用也比较多. BMP280和BMP180的区别: 市面上也有一些模块: ...

  3. STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32配置CH375B接口函数

    接着上一篇上传,这个是STM32配置CH375B时用到的接口函数 头文件: #ifndef __BSP_CH375_H__ #define __BSP_CH375_H__#include " ...

  4. CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转

    CentOS5.6系统中安装并使用USB无线网卡(配置成功) 2012-04-11 12:04:56|  分类: CentOS |  标签:centos  wireless  无线网卡  配置  连接 ...

  5. USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系

    @[TOC](USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系) 在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfigurat ...

  6. ROS USB摄像头配置(单目和双目)

    ROS USB摄像头配置(单目和双目) 原文 目前使用ROS和PX4固件控制无人机飞行,现在需要在ROS中加入USB摄像头,并且是两个.目前根据其它博客,以及ROS WIKI,对该流程进行记录 参考: ...

  7. 音频开发-----STM32配置CODEC之AD1939

    文章目录 一.简介 二.芯片框图 三.AD1939寄存器 四.配置代码 五.资料下载 STM32配置CODEC之AD1939 一.简介 因芯片价格上涨,所有使用AD1939代替原来的方案. 二.芯片框 ...

  8. 使用stm32配置自定义的HID设备

    STM32USB设备设计步骤: 申明:文章为原创性文章,转载请申明!!! 本文不对USB协议进行讲述,对于usb协议,我建议大家静下心好好去看下对应的资料,USB协议不是一个简单的协议,不是一两天就能 ...

  9. Linux那些事儿 之 戏说USB(16)配置

    接着看usb设备的配置吧,在include/linux/usb.h里定义 struct usb_host_config {struct usb_config_descriptor desc;char ...

  10. linux kvm usb设备,KVM usb passthrough配置

    KVM usb passthrough就是将宿主机的usb接口直接给虚拟机使用,usb接口上的设备也就直接可以在虚拟机上使用. 测试环境 宿主机1 CentOS 6.6 64位 内核版本 2.6.32 ...

最新文章

  1. GeoTrust 企业(OV)型 SSL证书
  2. element UI 选择器 踩的坑 获取到了value 显示不出对应的 value
  3. 大数据挖掘在销售管理中的应用价值
  4. openstack havana块存储Cinder磁盘加密方法研究
  5. AngularJS快速入门指南14:数据验证
  6. link2001错误无法解析外部符号metaObject
  7. Oracle 默认表空间(default permanent tablespace) 说明
  8. vue项目启动出现cannot GET /服务错误
  9. 10天学会phpWeChat——第一天:核心框架的目录结构
  10. 将[a=1,b=2] 转为对象
  11. 阵列信号处理-学习笔记003-波束形成
  12. 解决Ubuntu无法定位软件包问题
  13. 百事可乐AI人工智能生产过程破光
  14. c语言如何编译及调试,中如何编译运行及调试C语言程序.doc
  15. 二、赛普拉斯EZ-USB FX3示例烧录验证
  16. 视频转换格式,用DOS命令
  17. 全国高校食堂排行榜TOP10?!
  18. scite php配置 下载,SciTE的基本配置文件
  19. 360浏览器不能打开ftp服务器上的文件,解决IE、360、谷歌浏览器等无法访问FTP中文文件路径...
  20. django官方文档——使用多个数据库

热门文章

  1. 矽谷真假U盘测试软件,silicom矽谷真假u盘测试
  2. 既能被2又能被5整C语言,2012年国研究生统一考试心理学专业试题与答案
  3. 教育部双一流计算机科学与技术,双一流大学及学科详情.pdf
  4. xlsxwriter php,xlsxwriter(PHP工作表插件)
  5. 动手写一个二叉平衡树
  6. Naive-UI,尤大推荐的Vue组件库
  7. php银联支付接口 demo,php版银联支付接口开发简明教程
  8. Uniapp实现实时音视频的基础美颜滤镜功能
  9. Java选择排序(升序和降序)
  10. 服务器虚拟cpu,服务器虚拟化 vcpu与内存配比