STM32F042F6P6生成HID工程模拟USB鼠标
来源:互联网 发布:人事软件有哪些 编辑:程序博客网 时间:2024/05/30 23:03
原文地址::http://www.stm32cube.com/article/141
相关文章
1、STM32F042F6P6-USB设备开发最小系统之键盘示例----http://www.stm32cube.com/article/143
就是这个板子,淘宝59可买
直接上工程配置了。
打开SWD调试,开引脚映射,打开USB(由于引脚占用,USB必须引脚映射后才能开启),设置好对应按键和LED的引脚输出输入模式:
设置系统时钟,这里进去后自动设置:
设置USB模式,进入GPIO配置:
设置好按键和LED的输入输出模式,按键为上拉输入,当按键按下时检测为低:
配置工程输出:设置工程名、工程路径、IDE:
点击生成工程,等待一会:
工程生成完后可直接打开,Keil对于STM32F0/L0系列的单片机是免费授权的,大家可以不用去下盗版破解,直接到官网下载最新的Keil就可以了,新的Keil编译似乎快了不少,详情:http://www2.keil.com/stmicroelectronics-stm32/mdk
打开工程,编译,下载(我这里用的是ST-LINK下载),下载完成后,插上USB线到电脑上,会自动识别新设备,如下:
可以改以下文件修改设备名称等:
修改后编译、下载,电脑里检测的设备名称就已经变了:
下面我们来修改main.c,添加按键检测和LED灯代码,当按下按键时,灯就会亮,松开后就灭,在while(1)下添加如下代码:
if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0) { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); } else HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
然后编译,下载,重新运行之后是不是当按下按键的时候LED就亮了呢?
继续添加USB鼠标的代码,在main.c的程序头加入如下头文件:
#include "usbd_hid.h"
在main函数中定义一个4位数组,用来存放要发送到电脑的鼠标动作信息:
/* * buffer[0] - bit0: Left button 左键 * bit1: Right button 右键 * bit2: Middle button 中键 * buffer[1] - Cursor movement X axis 水平移动 * buffer[2] - Cursor movement Y axis 垂直移动 * buffer[3] - Wheel vertical movement 滚轮转动 */char buffer[4] = {0x00, 10, 10, 0};
在按键检测的判断中添加一条发送语句:
USBD_HID_SendReport(&hUsbDeviceFS, buffer, 4);
再次编译下载并重新运行,USB插到电脑上后,按下按键,LED亮并且电脑上鼠标会向右下方移动。鼠标的其它参数输出请自行补充。
更多可关注smilefrog.net
- STM32F042F6P6生成HID工程模拟USB鼠标
- usb hid gadget模拟鼠标键盘
- 基于STM32处理器的USB HID模拟鼠标键盘(1) - USB HID基础
- HID USB鼠标设计
- usb hid 鼠标
- USB HID 鼠标信息解析
- 基于STM32处理器的USB HID模拟鼠标键盘(2) - 实现键盘鼠标功能
- USB-HID鼠标、键盘通讯格式
- USB HID
- USB-HID
- usb hid
- USB HID
- 【USB】 HID
- USB+Hid
- DM816X 实现 USB HID Gadget 鼠标键盘功能
- Android/Linux USB HID驱动(即USB鼠标USB键盘等驱动)相关文件
- VMware直接使用主机USB HID(包含USB键盘鼠标)的方法
- 从调试数据分析USB通信协议——USB键盘鼠标【HID类设备】(四)
- Qt文件封包
- WebView加载H5界面后的返回键问题
- 表分区
- 统计学习方法-学习总结
- 学习java必知的概念
- STM32F042F6P6生成HID工程模拟USB鼠标
- thinkphp整合webuploader的使用 添加以及删除修改
- java前后台开发之文件上传
- LeetCode2—Add Two Numbers
- Laravel5.4框架中数据库迁移
- PHP 1,1,2,3,5,8,13,21,34。。。求第30位的数是多少
- AndroidUtils(一)手机信息大全(设备ID、厂商、型号、系统、IMEI、SDK版本等)
- easyUI 图片上传和预览
- SQL优化