USB STM32配置
STM32端点缓冲区
- 缓冲区描述表也存在USB_BTABLE中,所以端点缓冲区地址不是从0开始。
- 缓冲区地址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配置相关推荐
- STM32配置组合设备(HID+CDC)
STM32组合设备 STM32配置组合设备(HID+CDC) 1. CDC基础工程,HID基础工程生成 2.USB工程熟悉 2.1 USB初始化 2.2USB中断 2.3 相关结构体 2.3.1 ` ...
- STM32配置读取BMP280气压传感器数据
STM32配置读取BMP280气压传感器数据 BMP280是在BMP180基础上增强的绝对气压传感器,在飞控领域的高度识别方面应用也比较多. BMP280和BMP180的区别: 市面上也有一些模块: ...
- STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32配置CH375B接口函数
接着上一篇上传,这个是STM32配置CH375B时用到的接口函数 头文件: #ifndef __BSP_CH375_H__ #define __BSP_CH375_H__#include " ...
- CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
CentOS5.6系统中安装并使用USB无线网卡(配置成功) 2012-04-11 12:04:56| 分类: CentOS | 标签:centos wireless 无线网卡 配置 连接 ...
- USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
@[TOC](USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系) 在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfigurat ...
- ROS USB摄像头配置(单目和双目)
ROS USB摄像头配置(单目和双目) 原文 目前使用ROS和PX4固件控制无人机飞行,现在需要在ROS中加入USB摄像头,并且是两个.目前根据其它博客,以及ROS WIKI,对该流程进行记录 参考: ...
- 音频开发-----STM32配置CODEC之AD1939
文章目录 一.简介 二.芯片框图 三.AD1939寄存器 四.配置代码 五.资料下载 STM32配置CODEC之AD1939 一.简介 因芯片价格上涨,所有使用AD1939代替原来的方案. 二.芯片框 ...
- 使用stm32配置自定义的HID设备
STM32USB设备设计步骤: 申明:文章为原创性文章,转载请申明!!! 本文不对USB协议进行讲述,对于usb协议,我建议大家静下心好好去看下对应的资料,USB协议不是一个简单的协议,不是一两天就能 ...
- Linux那些事儿 之 戏说USB(16)配置
接着看usb设备的配置吧,在include/linux/usb.h里定义 struct usb_host_config {struct usb_config_descriptor desc;char ...
- linux kvm usb设备,KVM usb passthrough配置
KVM usb passthrough就是将宿主机的usb接口直接给虚拟机使用,usb接口上的设备也就直接可以在虚拟机上使用. 测试环境 宿主机1 CentOS 6.6 64位 内核版本 2.6.32 ...
最新文章
- GeoTrust 企业(OV)型 SSL证书
- element UI 选择器 踩的坑 获取到了value 显示不出对应的 value
- 大数据挖掘在销售管理中的应用价值
- openstack havana块存储Cinder磁盘加密方法研究
- AngularJS快速入门指南14:数据验证
- link2001错误无法解析外部符号metaObject
- Oracle 默认表空间(default permanent tablespace) 说明
- vue项目启动出现cannot GET /服务错误
- 10天学会phpWeChat——第一天:核心框架的目录结构
- 将[a=1,b=2] 转为对象
- 阵列信号处理-学习笔记003-波束形成
- 解决Ubuntu无法定位软件包问题
- 百事可乐AI人工智能生产过程破光
- c语言如何编译及调试,中如何编译运行及调试C语言程序.doc
- 二、赛普拉斯EZ-USB FX3示例烧录验证
- 视频转换格式,用DOS命令
- 全国高校食堂排行榜TOP10?!
- scite php配置 下载,SciTE的基本配置文件
- 360浏览器不能打开ftp服务器上的文件,解决IE、360、谷歌浏览器等无法访问FTP中文文件路径...
- django官方文档——使用多个数据库
热门文章
- 矽谷真假U盘测试软件,silicom矽谷真假u盘测试
- 既能被2又能被5整C语言,2012年国研究生统一考试心理学专业试题与答案
- 教育部双一流计算机科学与技术,双一流大学及学科详情.pdf
- xlsxwriter php,xlsxwriter(PHP工作表插件)
- 动手写一个二叉平衡树
- Naive-UI,尤大推荐的Vue组件库
- php银联支付接口 demo,php版银联支付接口开发简明教程
- Uniapp实现实时音视频的基础美颜滤镜功能
- Java选择排序(升序和降序)
- 服务器虚拟cpu,服务器虚拟化 vcpu与内存配比