你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十三章 FC游戏手柄控实验

[复制链接]
正点原子-90136 提问时间:2013-3-21 22:24 /
 
<div style="padding-bottom: 5px; line-height: 1.5; background-color: rgb(255,255,255); margin: 0px; padding-left: 5px; padding-right: 5px; color: rgb(0,0,0); font-size: 12px; padding-top: 5px">
<a name="_Toc342394281">33.2 硬件设计

本实验采用STM32的3个普通IO连接FC手柄的Clock、Data和Latch信号,本章实验功能简介:在主函数不停的查询手柄输入,一旦检测到输入信号,则在LCD模块上面显示键值和对应的按键符号。同样我们也是用LED0来指示程序正在运行。
所要用到的硬件资源如下:
1)  指示灯DS0
2) TFTLCD模块
3)  FC手柄
前两个,在之前的实例已经介绍过了,FC手柄属于外部器件。战舰STM32开发板板载了一个FC手柄接口(就是一个DR9接头,在开发板上标号为JOY_PAD),该接口与MCU的连接原理图如33.2.1所示:

 图33.2.1 FC手柄接头与STM32的连接电路图

图中,JOY_PAD就是用来连接FC手柄的,该接头采用标准的DR9座,战舰STM32开发板上有2个DR9座,一个用来接FC手柄(有JOY_PAD字样,LCD左上),另外一个用来接RS232串口(有COM字样,LCD右上),这两个头千万不要接错!否则可能烧坏手柄或者烧坏STM32
从上图我们知道,手柄的CLK(Clock)、LAT(Latch)和DAT(Data)分别连接在STM32的PC12、PC8和PC9上面,这里与SDIO部分信号线共用了,所以当使用SDIO的时候,就不能使用FC手柄了。因为信号线都是直连的,所以我们在开发板上不需要做配置,只需要将FC手柄插入JOY_PAD插口即可。
开发板配套的手柄,见图33.1.1。


33.3 软件设计
打开上一章的工程,首先在HARDWARE文件夹下新建一个REMOTE的文件夹。然后新建一个joypad.c和joypad.h的文件保存在JOYPAD文件夹下,并将这个文件夹加入头文件包含路径。
打开joypad.c文件,输入如下代码:
#include "joypad.h"
//初始化手柄接口.
void JOYPAD_Init(void)
{
      RCC->APB2ENR|=1CRH|=0X00030083;    
       GPIOC->ODR|=3START->UP->DOWN->LEFT->RIGHT.
//总共8位,对于有C按钮的手柄,按下C其实就等于A+B同时按下.
//按下是0,松开是1.
//返回值:
//[0]:右
//[1]:左
//[2]:下
//[3]:上
//[4]:Start
//[5]:Select
//[6]:B
//[7]:A
u8 JOYPAD_Read(void)
{
       u8 temp=0;
       u8 t;
       JOYPAD_LAT=1;                              //锁存当前状态
      JOYPAD_LAT=0;
<div style="margin: 5px 0px">       for(t=0;t

《STM32开发指南》第三十三章 FC游戏手柄实验.rar

下载

580.23 KB, 下载次数: 13, 下载积分: ST金币 -1

实验28 游戏手柄实验.rar

下载

142.88 KB, 下载次数: 10, 下载积分: ST金币 -1

收藏 评论1 发布时间:2013-3-21 22:24

举报

1个回答
cjq_enjoy-15073 回答时间:2013-3-22 09:01:00

RE:【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十三章 FC游戏手柄控实验

niu牛
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版