STM32下,PA3~PA7为矩阵输出,PC8~PC12为输入,使用轮询法扫描
int main(void)
{
delay_init();
LED_Init();
KEY_Init();
LED0=0;
while(1)
{
ROW0=ROW1=ROW2=ROW3=ROW4=1;ROW0=0;
if(LINE0==0)LED0=!LED0;
if(LINE1==0)LED0=!LED0;
if(LINE2==0)LED0=!LED0;
if(LINE3==0)LED0=!LED0;
if(LINE4==0)LED0=!LED0;
ROW0=ROW1=ROW2=ROW3=ROW4=1;ROW1=0;
if(LINE0==0)LED0=!LED0;
if(LINE1==0)LED0=!LED0;
if(LINE2==0)LED0=!LED0;
if(LINE3==0)LED0=!LED0;
if(LINE4==0)LED0=!LED0;
ROW0=ROW1=ROW2=ROW3=ROW4=1;ROW2=0;
if(LINE0==0)LED0=!LED0;
if(LINE1==0)LED0=!LED0;
if(LINE2==0)LED0=!LED0;
if(LINE3==0)LED0=!LED0;
if(LINE4==0)LED0=!LED0;
ROW0=ROW1=ROW2=ROW3=ROW4=1;ROW3=0;
if(LINE0==0)LED0=!LED0;
if(LINE1==0)LED0=!LED0;
if(LINE2==0)LED0=!LED0;
if(LINE3==0)LED0=!LED0;
if(LINE4==0)LED0=!LED0;
ROW0=ROW1=ROW2=ROW3=ROW4=1;ROW4=0;
if(LINE0==0)LED0=!LED0;
if(LINE1==0)LED0=!LED0;
if(LINE2==0)LED0=!LED0;
if(LINE3==0)LED0=!LED0;
if(LINE4==0)LED0=!LED0;
}
}
配置键盘输出口:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
配置键盘输入口:
PIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;//PE2~4 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC, &GPIO_InitStructure);
按键定义:
#define ROW0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)
#define ROW1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)
#define ROW2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)
#define ROW3 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)
#define ROW4 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7)
#define LINE0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)
#define LINE1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)
#define LINE2 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)
#define LINE3 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11)
#define LINE4 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_12)
按键处理:
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode)key_up=1;
if(key_up&&(LINE0==0||LINE1==0||LINE2==0||LINE3==0||LINE4==0))
{
delay_ms(10);
key_up=0;
}else if(LINE0==1&&LINE1==1&&LINE2==1&&LINE3==1&&LINE4==1)key_up=1;
return 0;
想请问大大,我在compiler时,在main主程式里
标注红色背景部分,显示expression must be a modifiable lvalue 的错误讯息,该如何解决?
|