初级会员

- 积分
- 92
- 金钱
- 92
- 注册时间
- 2018-3-18
- 在线时间
- 29 小时
|
1金钱
程序是移植论坛一个大佬的。不知道为什么放在我的开发板子上没有反应。不知道是不是哪里写错了。。
我实在是找不出来了。。。所以恳请大佬们麻烦看下 万分感谢!!!我用的是战舰V3开发板
以下是main
int main(void)
{
uart_init(115200);
delay_init();
LED_Init();
JZAJ_Init();
POINT_COLOR=RED;
while(1)
{
// LED1=0;
// LED0=0;
keychuli();
delay_ms(300);
}
}
以下是按键配置函数
#include "jzaj.h"
#include "lcd.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
u16 keyz=0;
u8 value=0;
void JZAJ_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5 | GPIO_Pin_4 |GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_InitStructure);
GPIO_SetBits(GPIOF,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
u8 KeyScan()
{
u8 lie,hang,k,i=0;
delay_init();
GPIO_Write(GPIOF,0XF0);
if((GPIO_ReadInputData(GPIOF)&0xF0)!=0xF0)
{
delay_ms(40);
if((GPIO_ReadInputData(GPIOF)&0xF0)!=0xF0)
{
lie=GPIO_ReadInputData(GPIOF);
hang=lie;
lie=~lie;
lie=lie&0xf0;
for(i=0;i<4&&((hang&0xf0)!=0xf0);i++)
{
GPIO_Write(GPIOF,(hang&0xf0)|(0x01<<i));
hang=GPIO_ReadInputData(GPIOF);
}
hang&=0x0f;
k=lie|hang;
GPIO_Write(GPIOF,0XF0);
while((GPIO_ReadInputData(GPIOF)&0xF0)!=0xF0)
{
delay_ms(40);
}
return k;
}
}
return 0;
}
void keychuli()
{
keyz=KeyScan();
if(keyz!=0)
{
switch(keyz)
{
case 0x11: value=0;LED1=1;break;
case 0x21: value=1;LED1=0;break;
case 0x41: value=2;LED1=1;break;
case 0x81: value=3;LED1=0;break;
case 0x12: value=4;LED1=1;break;
case 0x22: value=5;LED1=0;break;
case 0x42: value=6;LED1=1;break;
case 0x82: value=7;LED1=0;break;
case 0x14: LED1=1;break;
case 0x24: LED1=0;break;
case 0x44: LED1=1;break;
case 0x84: LED1=0;break;
case 0x18: value=8;LED1=1;break;
case 0x28: value=9;LED1=0;break;
case 0x48: LED1=1;break;
case 0x88: LED1=0;break;
default:break;
}
}
}
|
|