在好例子网,分享、交流、成长!
您当前所在位置:首页 → C/C++ 开发实例 → 嵌入式开发 → 自制xbox360usb摇杆手柄原理图及源码

自制xbox360usb摇杆手柄原理图及源码

嵌入式开发

下载此实例 编辑此实例
  • 开发语言:C/C++
  • 实例大小:1.20M
  • 下载次数:0
  • 浏览次数:0
  • 发布时间:2026-10-08
  • 实例类别:嵌入式开发
  • 发 布 人:samd
  • 文件格式:.zip
  • 所需积分:2
 相关标签: xbox 360 usb 完整 自制

实例介绍

【实例简介】

我现在PCB主要是做街机摇杆用,多键同时按测试都通过。数字遥感、按键、振动已在程序中实现,但PCB上未画。

连发是按下需要连发的键后再按连发键开启,反之关闭。

普冉PY32F403最高144Mhz带硬件浮点,价格又很便宜,3元一颗,自带USB接口,48pin封装的引脚足够用,性能做这缀缀有余的,复刻元件估计10元。项目里含嘉立创可导入的原理图和pcb,具体按键功能查看Readme.md

【实例截图】


【核心代码】

/**
  ******************************************************************************
  * @file    gamepad_config.h
  * @brief   手柄硬件配置:按键引脚、模拟量通道、舵量与输出
  *
  *          移植到自己的板子时,理论上只需要改本文件。
  *          PA0~PA5 用于 ADC(注意:这些脚不能再用做按键),
  *          按键挂在 PB4~PB15 与 PA8/PA10/PA15,LED / 震动马达在 PB0~PB3、PA6/PA7。
  ******************************************************************************
  */

#ifndef __GAMEPAD_CONFIG_H
#define __GAMEPAD_CONFIG_H

#include "py32f4xx_hal.h"

/* ========================================================================== */
/* 1. 按键部分                                                                */
/* ========================================================================== */

/**按键有效电平:1 = 按下为低电平(内部上拉,按键接 GND,最常见)*/
#define GP_BUTTON_ACTIVE_LOW     1

/**按键软件消抖:连续多少次扫描结果一致才确认状态变化(扫描周期 1ms,即约 N 毫秒)
    0 = 不消抖,5 = 推荐(机械按键抖动通常 5~20ms)
   有了软件消抖,按键上不必再并联电容;若仍想硬件消抖,10nF 已足够(不要 100nF,
   那会让释放边沿变慢)。*/
#define GP_BUTTON_DEBOUNCE_MS    5

/* 15 个数字按键的引脚定义,按下触发的电平由 GP_BUTTON_ACTIVE_LOW 决定。
   48 脚封装(LQFP48)下 PB 口只剩 PB4~PB15 共 12 个空位(PB0~PB3 是玩家 LED),
   剩余 3 个按键放在 PA8 / PA10 / PA15:
   - PA8  :普通 IO,无冲突
   - PA10 :普通 IO,与调试串口 TX(PA9) 相邻但不冲突
   - PA15 :复位后默认复用为 JTDI(上拉),配置为输入上拉后即可正常当按键;
            注意若改用 JTAG 调试(而非 4 线 SWD)则 PA15 不可用
   本分配完全不使用 PC 口,避开 PC13/14/15 的 LSE/TAMPER 复用问题。 */
#define GP_PIN_UP_PORT           GPIOB
#define GP_PIN_UP_PIN            GPIO_PIN_4
#define GP_PIN_DOWN_PORT         GPIOB
#define GP_PIN_DOWN_PIN          GPIO_PIN_5
#define GP_PIN_LEFT_PORT         GPIOB
#define GP_PIN_LEFT_PIN          GPIO_PIN_6
#define GP_PIN_RIGHT_PORT        GPIOB
#define GP_PIN_RIGHT_PIN         GPIO_PIN_7
#define GP_PIN_START_PORT        GPIOB
#define GP_PIN_START_PIN         GPIO_PIN_8
#define GP_PIN_BACK_PORT         GPIOB
#define GP_PIN_BACK_PIN          GPIO_PIN_9
#define GP_PIN_LS_PORT           GPIOB
#define GP_PIN_LS_PIN            GPIO_PIN_10
#define GP_PIN_RS_PORT           GPIOB
#define GP_PIN_RS_PIN            GPIO_PIN_11
#define GP_PIN_LB_PORT           GPIOB
#define GP_PIN_LB_PIN            GPIO_PIN_12
#define GP_PIN_RB_PORT           GPIOB
#define GP_PIN_RB_PIN            GPIO_PIN_13
#define GP_PIN_A_PORT            GPIOB
#define GP_PIN_A_PIN             GPIO_PIN_14
#define GP_PIN_B_PORT            GPIOB
#define GP_PIN_B_PIN             GPIO_PIN_15
#define GP_PIN_X_PORT            GPIOA
#define GP_PIN_X_PIN             GPIO_PIN_8
#define GP_PIN_Y_PORT            GPIOA
#define GP_PIN_Y_PIN             GPIO_PIN_10
#define GP_PIN_GUIDE_PORT        GPIOA
#define GP_PIN_GUIDE_PIN         GPIO_PIN_15

标签: xbox 360 usb 完整 自制

实例下载地址

自制xbox360usb摇杆手柄原理图及源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享!

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警