本帖最后由 心静海 于 2016-5-3 21:03 编辑
求各位给点资源和建议
在下不胜感激#include "led.h"#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "joypad.h"
#include "beep.h"
#include "motor.h"
#include "timer.h"
/************************************************
ALIENTEK战舰STM32开发板实验29
游戏手柄 实验
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司
作者:正点原子 @ALIENTEK
************************************************/
const u8*JOYPAD_SYMBOL_TBL[8]=
{"Right=0","Left=1","Down=2","Up=3","Start=4","Select=5","B=6","A=7"};//手柄按键符号定义
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 a=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //初始化与LED连接的硬件接口
LCD_Init(); //初始化LCD
JOYPAD_Init(); //手柄初始化
BEEP_Init();
Motor_Init();
TIM3_PWM_Init(1000,255);
TIM2_PWM_Init(1000,99);
POINT_COLOR=GREEN;//设置字体为绿色
LCD_ShowString(30,50,200,16,16,"WarShip STM32");
LCD_ShowString(30,70,200,16,16,"JOYPAD TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2015/1/16");
LCD_ShowString(30,130,200,16,16,"KEYVAL:");
LCD_ShowString(30,150,200,16,16,"SYMBOL:");
POINT_COLOR=BLUE;//设置字体为蓝色
while(1)
{
key=JOYPAD_Read();
if(key)
{
LCD_ShowNum(116,130,key,3,16);//显示键
for(i=0;i<8;i++)
{
if(key&(0X80>>i))
{
LCD_Fill(30+56,150,30+56+48,150+16,WHITE);//清除之前的显示
LCD_ShowString(30+56,150,200,16,16,(u8*)JOYPAD_SYMBOL_TBL);//显示符号
if(i==0)
{
t++;
if(t==1)
{LED0=1;}
delay_ms(10);
if(t==2)
{LED0=0;t=0;}
LCD_ShowNum(116,230,a,3,16);//显示键
}
else if(i==1)
{
LCD_ShowString (30,170,200,16,16,"Is");
LED0=!LED0; M1_1=0;M1_2=1;
}
else if(i==2)
{
LCD_ShowString (30,170,200,16,16,"Really");
LED1=1;
}
else if(i==3)
{
LCD_ShowString (30,170,200,16,16,"Simple");
LED1=0;
}
else if(i==7)
{
a++;
LCD_ShowNum(116,230,a,3,16);//显示键
if(a==1)
{M1_1=1;M1_2=0; TIM_Cmd(TIM3, ENABLE);}
delay_ms(400);
if(a<2)
{M1_1=0;M1_2=0; TIM_Cmd(TIM3, DISABLE);a=0;}
}
else {}
}
}
}
delay_ms(10);
//t++;
//if(t==20)
{
//t=0;
//LED1=!LED1;
}
}
}
我只写了键七,响应会随着键的松开而停止
|