开发板:stm32f407探索者开发板V2
屏幕是4.3寸-800-480-MCU屏
手头没有V3开发板,只有V2,所以没法测试
所以只讲修改哪里,请自行修改
先改手柄部分,把手柄改成按键
找到左边的nes文件夹中的nes_main.c文件
void nes_get_gamepadval(void)//读取手柄数据函数
把函数里面的语句全部注释掉
//u8 *pt;
/*
while((usbx.bDeviceState&0XC0)==0X40)//USB设备插入了,但是还没连接成功,猛查询.
{
usbapp_pulling(); //轮询处理USB事务
}
usbapp_pulling(); //轮询处理USB事务
if(usbx.hdevclass==4) //USB游戏手柄
{
PADdata=fcpad.ctrlval;
PADdata1=0;
}else if(usbx.hdevclass==3)//USB键盘模拟手柄
{
KEYBRD_FCPAD_Decode(pt,0);
PADdata=fcpad.ctrlval;
PADdata1=fcpad1.ctrlval;
}
*/
加入下面的语句
手柄1键值 [7:0]右7 左6 下5 上4 Start3 Select2 B1 A0
if(WK_UP==0)
{
PADdata = PADdata | 0x08;//Start3
}
else
{
PADdata = PADdata & ~0x08;
}
if(KEY0==0)
{
PADdata = PADdata | 0x04;//Select2
}
else
{
PADdata = PADdata & ~0x04;
}
if(KEY1==0)
{
PADdata = PADdata | 0x02;//B1
}
else
{
PADdata = PADdata & ~0x02;
}
if(KEY2==0)
{
PADdata = PADdata | 0x01;//A0
}
else
{
PADdata = PADdata & ~0x01;
}
由于开发板上的按键只有4个,所以就改了4个,
下载测试就可以了
下面开始改横屏
我的屏幕的ID是5510 如果您是这个屏幕就可以按下面的修改
还是在nes_main.c文件中
找到void nes_set_window(void)
使用下面的语句 替换这个全部函数
//设置游戏显示窗口
void nes_set_window(void)
{
u16 xoff=0,yoff=0;
u16 lcdwidth,lcdheight;//
u16 regval=0;//定义寄存器地址
u16 dirreg=0;//定义寄存器的值
dirreg=0X3600;//给寄存器的地址
regval|=(0<<7)|(1<<6)|(1<<5); //寄存器的值 扫描方式为 U2D_R2L
LCD_WriteReg(dirreg,regval);//设置屏的扫描方式寄存器
lcdwidth=480;//显示宽度
lcdheight=480; //显示高度
nes_xoff=(256-(lcddev.width/2))/2;//得到x轴方向的偏移量
xoff=0;
LCD_Set_Window(160,0,lcdwidth,lcdheight);//让NES始终在屏幕的正中央显示
LCD_SetCursor(160,0);//设置屏幕光标位置
LCD_WriteRAM_Prepare();//写入LCD RAM的准备
}
全部修改完毕