当前位置: 首页 > news >正文

常用的网络营销方式seo教程 seo之家

常用的网络营销方式,seo教程 seo之家,wordpress 小云app,网站建设私单第三章 USB应用笔记之USB鼠标(以STM32 hal库为例) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)前言一、STM32 U…

第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)
  • 前言
  • 一、STM32 USB库简单讲解
    • 工程目录结构
    • .C文件分析
  • 二、实操代码
  • 《鼠标》
  • 一、STM32 CubeMX 设置
    • USB时钟设置
    • USB使能
    • UBS功能选择
  • 二、代码部分
    • 添加代码
    • 鼠标发送给PC的数据解析
    • 实验效果
  • 总结


前言

STM32F1系列是意法半导体(STMicroelectronics)推出的一款微控制器系列,具有广泛的应用领域。在STM32F1系列中,一些型号支持USB功能,以下是STM32F1系列USB的一些特点:

  • USB 2.0 Full-Speed:STM32F1系列的USB接口符合USB 2.0的Full-Speed标准,支持12
    Mbps的数据传输速率。
  • USB设备和主机模式:STM32F1系列可配置为USB设备或USB主机模式。在USB设备模式下,它可以作为USB设备与主机进行通信;在USB主机模式下,它可以控制和管理外部USB设备。
  • USB On-The-Go(OTG)支持:一些型号的STM32F1系列支持USB
    OTG功能。这意味着它们能够在设备模式和主机模式之间进行切换,使其能够适应多种USB应用场景。
  • 多个外设接口:STM32F1系列的USB接口可以与其他外设接口(如UART、SPI、I2C等)进行集成,以实现更复杂的应用设计。
  • DMA支持:STM32F1系列的USB接口支持直接内存访问(DMA),可以通过DMA传输数据,降低了处理器的负载。
  • 丰富的软件库支持:ST提供了丰富的软件库和示例代码,开发者可以使用这些库来简化USB应用的开发过程。

STM32F1 USB外设主要特征
(1)符合USB2.0全速设备的技术规范。

(2)可配置1到8个USB双向端点,我们可以理解为8个IN端点和8个OUT端点,也就是每一个双向端点可以被配置为一个IN端点和一个OUT端点,但是这两个端点公用一个端点寄存器,两个端点的类型必须是一致的(控制端点、中断端点、批量端点、同步端点)。

(3)外设硬件自动为每一个PID和Packet字段生成CRC效验,并和其他字段组成一个完整的USB Packet。

(4)支持控制传输、中断传输、同步传输、批量传输。

(5)支持同步传输和批量传输双缓冲机制,比如说我们采集ADC或者接收外部传感器的数据时必须保持数据的完整性,就可以使用双缓冲机制防止丢数。

(6)支持对自己的挂起和恢复操作,可以查看USB总线电平标准、USB总线状态、USB总线信号详解博文对挂起和恢复操作进行理解。

(7)帧锁定时钟脉冲生成。当收到一个SOF帧开始包,可以生成一个脉冲信号给其他模块使用,如果SOF中断使能,会进入SOF中断处理函数。

https://blog.csdn.net/weiaipan1314/category_10791264.html跳转


一、STM32 USB库简单讲解

工程目录结构

在这里插入图片描述

  • 1:
  • usb_device.c:初始化USB设备库,添加支持的类并启动库
  • usbd_desc.c :USBD_Usr_cb_TypeDef结构体中相关描述符的请求,不包括配置描述符。
  • 2:
  • usbd_conf.c 发送接收、初始化、回调函数 等等底层函数 与HAL库结合
  • 3:
  • usbd_core.c 内核相关
  • usbd_ctlreq.c 控制请求
  • usbd_ioreq.c 输入输出请求
  • usbd_hid.c HID配置

.C文件分析

在这里插入图片描述

这里主要为初始化USBD_HID_Init,反初始化USBD_HID_DeInit,HID控制端点的特定类请求USBD_HID_Setup,中断端端点的数据输入输入和关键的描述符配置描述符USBD_HID_GetCfgDesc。

二、实操代码

《鼠标》

一、STM32 CubeMX 设置

USB时钟设置

在这里插入图片描述

USB使能

在这里插入图片描述

UBS功能选择

在这里插入图片描述

二、代码部分

在这里插入图片描述
在这里插入图片描述

添加代码

 
#include "usbd_hid.h"extern USBD_HandleTypeDef hUsbDeviceFS;uint8_t HID_biff[4];
        HAL_Delay(1000);USBD_HID_SendReport(&hUsbDeviceFS,HID_Mouse_buff,4);//按下鼠标右键HID_Mouse_buff[0]=0x08;//恒为1HID_Mouse_buff[1]=10;//X+10HID_Mouse_buff[2]=10;//Y+10HID_Mouse_buff[3]=0; //鼠标滑轮

鼠标发送给PC的数据解析

数据格式
鼠标发送给PC的数据每次4个字节
BYTE1 BYTE2 BYTE3 BYTE4
定义分别是:
BYTE1 –
|–bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|–bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|–bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动
|–bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动
|–bit3: 恒为1
|–bit2: 1表示中键按下
|–bit1: 1表示右键按下
|–bit0: 1表示左键按下
BYTE2 – X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
BYTE3 – Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 – 滚轮变化。BYTE1高5位是可以不用关注的,一般这5bit 在HID描述符中都是作为填充位使用,置0即可。

实验效果

请添加图片描述

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

http://www.fp688.cn/news/153481.html

相关文章:

  • 医疗网站运营网站是什么意思
  • 网站怎么做支付西安百度竞价托管代运营
  • 济南电视台在线直播徐州seo推广
  • 营销式网站建设近几天的新闻摘抄
  • 4在线做网站外贸网站推广的方法
  • wordpress database backup设置windows 优化大师
  • 成华区建设局网站武汉seo网站排名
  • 网站首页三张海报做多大免费seo网站的工具
  • 网站mip怎么做网站制作公司怎么样
  • 在家办厂小型加工项目seo黑帽教程视频
  • 做数据可视化图的网站武汉网站建设推广公司
  • 推荐常州模板网站建设搜搜
  • 网站建设的工作人员seo排名快速上升
  • 怎样自己建设网站广州网站推广服务
  • ASP动态商业网站建设案例2023新闻大事10条
  • o2o网站建设行业现状深圳网络整合营销公司
  • s2b2c有哪些平台北京seo课程培训
  • wordpress关闭网站吗免费的b2b平台
  • 商标注册号查询常熟seo关键词优化公司
  • 建设银行的官方网站高铁纪念币今日新闻热点10条
  • 设计好的免费网站建设线上推广
  • 手机网站进不去怎么办信息流广告
  • 自建木屋教程搜索引擎关键词优化方案
  • 已有的网站如何做排名优化做竞价推广这个工作怎么样
  • 建站小程序编辑器闪亮登场seo排名点击器曝光行者seo
  • 福州seo服务商淘宝seo
  • 做我女朋友好不好手机网站企业宣传片
  • 信息网官网热狗网站关键词优化
  • 西藏自治区交通厅公路基本建设工程质量监督站网站seo工资水平
  • 建立网站需要多少钱 索 圈湖南岚鸿seo模拟点击有用吗