61 stm32 USB键盘一直在发送数据

两种方法实现STM32F103向串口一直发送数据(程序源码,已测试) 串口是STM32最为重要的资源,在平时的硬件调试和软件调试中都是不可或缺的工具,最近在测试一块板子的通信功能是否正常,我打算用板子A的串口USART1一直向串口发送数据,用板子B的串口1接收数据,并将接收到的数据经过处理后显示在LCD液晶上。所以就写了下面的串口发送程序,发送的是数组函数。     Main.c #include "led.h" #include "delay.h" #in 阅读详情

1.引言

        今天测试USB键盘的时候,按照下述格式发送数据8后,电脑一直接收到8,然后8888888888888888888888888888888888....................源源不断!

 2.问题

        在调用发送数据后,mcu将键值拷贝到HID发送数据区(USB键盘是8个字节),当HID设备检测到该区域数据不为0时,会一直调用把该部分的数据发送出去。

        知道原因后,我们在拷贝完这个数据后,将HID的发送数据区域清0,即可阻止一直发送数据问题。

 

关于键盘所对应的键值,请参考此博客:

HID设备数据格式_chongchong0929的博客-优快云博客

STM32。USB HID,如何发送标准键盘的按键报告? CmdOutBuf[2]这个位置就是储存键值的位置,0x09代表的是键盘上F这个键,0x06代表的是键盘上C这个键,具体的按键对应什么键值需要去查。然后注意,HID_MOUSE_REPORT_DESC_SIZE这个宏定义也要修改,因为鼠标是74个字节的数组,而标准键盘是63的字节的数组,那么就需要修改usbd_hid.c里的HID_MOUSE_ReportDesc这部分的数据,他默认是鼠标的,我们给他修改成键盘的。这些是他们规定好的一些数据,我们选择标准键盘的数据(不要选鼠标的),keybrd.hid。 阅读详情

相关推荐

物联网全栈开发实战系列文章汇总(共1361篇,持续更新)

物联网全栈开发实战专栏将涵盖各类单片机、嵌入式设备及驱动开发实例。从仿真到硬件,从单个实例到综合实例,从单个设备到多个设备的各种方式通信、联网等等。以实例为线索,从硬件到用户终端,掌握物联网全栈开发基础。.................................

视觉与物联智能 1万+

USB键盘协议程序之字符重复无数次

【艾克姆科技】nRF24LU1开发板的资料里没有usb键盘的程序,另外找到的程序不说引脚问题,只需要两个模块就麻烦。由dongle模块改成的按键触发,遇到的最大问题是字符不断重复的问题。其实深入了解了usb HID协议的话,这也不是问题的。 usb_send_packet ( &radio_data[APP_DATA],

u014516174的博客 1056

【信息科学与工程学】【控制科学】第十二篇 微型计算机控制技术01

更精确的经典模型:I1在第5周期WB结束,I2最早可在第6周期进入EX,但I2在ID阶段就需要R1,因此I2的ID需在第6周期,而I1的WB在第5周期,所以I2的ID可以紧接在第6周期,但中间仍有一个stall(因为I1的EX结果要等到MEM之后才能转发给ID?有优先级继承后,Task_L被提升优先级,不会被Task_M抢占,阻塞时间缩短为Task_L剩余执行时间(9ms),仍可能超过10ms,但可通过调整任务周期或使用中断处理缓解。电感L=10μH,输出电容C=100μF,ESR=5mΩ。

weixin_49199313的博客 8634

STM32例程之USB HID双向数据传输(源码下载)【转】

程序功能 将STM32的USB枚举为HID设备。 STM32使用3个端点,端点0用于枚举用,端点1和2用于数据的发送和接收。 端点长度为64,也就是单次最多可以传输64个字节数据。 STM32获取上位机下发的数据并将该数据通过USB原样返回,同时将数据打印输出。 上位机程序通过调用windows的API实现对HID设备的读写控制。 USB接口原理图:<...

weixin_30527423的博客 2060

STM32智能门禁系统设计:多模块集成与状态机应用实践

嵌入式系统开发是物联网应用的基础,其核心在于微控制器对外设模块的高效驱动与协同管理。通过GPIO、串口、SPI、I2C等接口,开发者可以连接指纹、RFID、WiFi等多种传感器与通信模块,实现数据采集与交互。状态机作为一种经典的软件设计模式,能够有效管理复杂业务逻辑,在单线程环境中模拟多任务并发,提升系统实时性与响应性。这些技术的结合,为构建稳定可靠的智能硬件系统提供了工程实践路径。本文以STM32智能门禁系统为例,深入剖析了如何集成指纹识别、RFID读卡、WiFi通信等模块,并运用状态机实现用户认证与远程

weixin_34192816的博客 365

51单片机无线抢答器制作:nRF24L01+驱动与状态机仲裁

无线通信是嵌入式开发的高频技术需求,而基于单片机的无线数据收发更是课程设计与工程实践中的常见挑战。nRF24L01+作为经典的2.4GHz射频模块,凭借低功耗、SPI接口和自动重发机制,成为学习无线收发与协议设计的理想载体。本文从51单片机最小系统入手,讲解nRF24L01+的寄存器配置、SPI时序模拟和收发函数实现,并重点剖析无线抢答器中的“先到先得”仲裁问题:如何通过主机从机状态机、随机退避和帧格式设计,在共享半双工信道上可靠判定首个按键者。内容覆盖硬件电平匹配、供电抗干扰、串口调试及Python解析方

weixin_33910137的博客 231

STM32 USB 开发(二)HID Slave 通信 --- 简单上位机开发

文章目录前言在网上找了一圈发现,用C#来开发上位机还是比较简单的,因此在这里和大家分享一下开发的过程。一、准备数据二、在VS中开发上位机1.引入国外大神写的USB通讯库HidLibary2.新建HID管理类 CustomHIDManager.cs3.运行结果总结 前言 在网上找了一圈发现,用C#来开发上位机还是比较简单的,因此在这里和大家分享一下开发的过程。 一、准备数据 将STM32的主函数main.c中修改一下发送的数据。 while (1) { HAL_Delay(1000); debu

weixin_39565027的博客 3439

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6404

开源楷体字体霞鹜文楷:免费商用完整指南

霞鹜文楷(LXGW WenKai)是基于 FONTWORKS 的 Klee One 衍生的开源楷体字体,OFL 1.1 授权、免费商用。它覆盖《通用规范汉字表》8105 字、简繁日韩合计 2 万余字,提供三字重和等宽版 Mono。 ## 先说结论:它适合谁 一句话:正文排版、代码注释、商业设计,装它一个就够。典型场景有三个:**博客与诗词排版**,楷体书卷气足,中等长度文本比黑体更耐看;**编

gitblog_00346的博客 375

揭秘无人机前沿领域的科技新突破

本文旨在系统性地介绍无人机技术在前沿领域的最新突破,涵盖从基础理论到实际应用的各个方面。我们将重点关注那些正在改变无人机行业面貌的关键技术创新,并分析它们对未来发展的影响。文章首先介绍无人机技术的基础概念和背景,然后深入探讨六个关键领域的技术突破,接着分析实际应用案例,最后展望未来发展趋势。自主导航系统(SLAM):同时定位与地图构建技术,使无人机能在未知环境中自主导航计算机视觉(CV):使无人机能够"看"和理解周围环境的技术5G通信:第五代移动通信技术,提供高速、低延迟的数据传输能源管理。

AI天才研究院 1490

离散系统傅里叶变换的常用结论证明

本文介绍了离散系统傅里叶变换的三个重要结论:1)时域卷积对应频域相乘(公式1-3);2)时域相乘对应频域卷积(公式4-6);3)帕塞瓦尔定理(公式7)及其广义形式,证明信号能量在变换域保持不变。文末提供了MATLAB卷积运算演示程序,通过动画展示离散信号卷积过程(翻转、平移、相乘、累加),并以方波信号为例给出运行结果图。该程序直观呈现了卷积运算的步骤与结果。

newtton的博客 1302

电赛控制类题目备战指南:从PID算法到传感器融合的实战方案

在嵌入式系统与自动控制领域,微控制器(MCU)作为核心大脑,通过执行控制算法来驱动执行器,实现对物理世界的精确调控。其工作原理基于实时采集传感器数据,经过滤波与融合处理,由控制算法(如经典的PID控制器)计算出控制量,最终驱动电机等执行机构完成目标动作。这项技术的核心价值在于构建稳定、快速、准确的闭环控制系统,是机器人、智能车、无人机等自动化设备的基石。其典型应用场景包括姿态平衡、轨迹跟踪、速度与位置伺服等。本文聚焦于全国大学生电子设计竞赛(电赛)控制类题目,深入探讨如何围绕**STM32**微控制器平台,

weixin_34060741的博客 368

zds1104示波器使用指南

(2)将探头连接到探头补偿端,按下auto setup按键,一键捕获。(3)连接需要测量信号,开始查看波形。操作说明书,可以自行查看操作说明书。

m0_61973119的博客 6772

STM32:Custom HID实现USB双向通信

本文章主要讲了使用STM32的USB Device,实现控制板和电脑通信功能。从而实现,上位机对控制板进行调试。

xikangsoon的博客 5584

基于matlab的CNN验证码识别系统(UI界面版)

基于matlab的CNN验证码识别系统(UI界面版),CNN验证码识别系统包括数据集处理、模型搭建、模型训练、界面设计与实现

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 483

芒果YOLO11改进17:即插即用 | 损失函数Repulsion Loss|Repulsion 解决目标遮挡场景下的目标检测,为解决密集人群检测中遮挡设计的损失函数,打造高效

即插即用 | 损失函数Repulsion Loss|Repulsion 解决目标遮挡场景下的目标检测,为解决密集人群检测中遮挡设计的损失函数,打造高效

包括YOLOv5、YOLOv7、YOLOv8等模型改进 484

第10课【STM32 USB通讯协议实战】HID键盘+CDC虚拟串口组合设备

HID报文描述符可能是所有USB描述符中最复杂的,抽象的概念相当多,理解起来也需要一定的时间。但是复杂的定义带来的却是报文易用性和灵活性,它几乎可以描述任何形式的数据,而且长度都由开发者来定义,形式也较为简洁清晰。

PORKWOTONLEE的博客 1万+

RK3588 buildroot 制作的系统增加 docker 支持

RK3588 使用buildroot制作的系统添加 docker 和 docker-compose 的功能

荻夜的博客 1567

STM32 USB 键盘开发记录

STM32 USB 键盘开发记录 最近接触到 stm32 平台实现 usb keyboard 的内容,遍搜网络后最终选定了两个开源方案做参考。 一号方案: STM32完整开发一台双模机械键盘 二号方案:STM32硬核DIY机械键盘|蓝牙USB双模|灯控 两个方案各有特点,一号方案用C++实现,用面向对象的理念把普通按键跟复合按键拆分开;二号方案实现了蓝牙键盘的功能;考虑到减少工作量需求,最终选择了一号方案。 基于 CoopBoard 工程进行验证及二次开发 构建 Keil 工程 从 github 上

橘子霸霸的专栏 2199

【SpringBoot 3.x 第56节】再见 Feign?原生 HTTP 接口强势上位,这才是微服务调用的正确姿势!

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1017

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

利用STM32模拟键盘遇到问题的解决方案

作者代码中E的报文如图,通过不断修改发现M的如上,通过不断测试后发现由于我的报文描述符描述的报文长度为8字节 ,选定的键盘的usage page为07页,在该页中,A应该是hidbuffer[2]=0x10,B为hidbuffer[2]=0x20,而G为hidbuffer[3]=0x04,即每八位对应上述划分的八个键盘符号,每当一位为1时,则表示该键被按下,同时为1则同时被按下,所以0xFF表示该区间所有按键都被按下。2、第二次遇到的问题是生成的工程不能运行成功,这里借用下其他作者的图。

annatyon的博客 1058

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

GD32单片机USB HID模式连续发送多包数据,出现丢包现象

GD32单片机USB HID模式连续发送多包数据,出现丢包现象

AXIK19920824的博客 2801

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于STM32的USB键盘

端点数1改为2,接口协议2(鼠标)改为1(键盘),报告描述符长度重定义为HID_KEYBOARD_REPORT_DESC_SIZE 63U。最后配置集合中增加一部分端点描述符(添加到末尾),因为USB键盘对主机来说,不光有输入,还有输出。*keyBoardData[0]:特殊键D0:Ctrl D1:Shift D2:Alt。注:这里的PA9/10要重映射为PA11/12供USB接口使用(大部分芯片是分开的不用设置)注:这里的PID和VID默认就可以了(多设备时可以更改)key_scan(1);

a666266777的博客 3582

STM32 USB 问题汇总

汇总1:STM32的USB例程修改步骤,来自http://blog.youkuaiyun.com/cy757/archive/2010/01/01/5117610.aspx   以下是笔者将ST的Custom_HID例程修改为“自定义USB设备”例程时总结出来的,因为笔者也是刚刚学USB开发不久,某些方面理解错误在所难免,请各位大虾指正。 一、usb_desc.c文件 根据你程序使用的通信方式修改。u

LYJ个人博客,记录技术、八卦、生活,分享各种心得,期待与朋友们一同进步 2万+

lora模块通过stm32实现数据传输(按键发送指令)

使用串口一通过正点原子提供的串口调试助手发送数据给串口三,然后再通过串口三发送到GBC_x,把数据传输给lora模块

qq_51908356的博客 4055

STM32CubeMX学习笔记-USB接口使用(HID按键)

USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、Microsoft 等多家公司联合提出的。USB 发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是 USB1.1 和 USB2.0,USB3.0 目前已经开始普及。

weixin_41226265的博客 4060
上一篇: 60 无键值Json数组和有键值json数组实验
下一篇: 62 stm32 usb自定义hid复合设备修改实验
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值