HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,1);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)==0){HAL_Delay(20);KeyValue=0;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)==0){HAL_Delay(20);KeyValue=1;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)==0){HAL_Delay(20);KeyValue=2;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)==0){HAL_Delay(20);KeyValue=3;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)==0);HAL_Delay(20);}这是扫描第()行
查看答案
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,0);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)==0){HAL_Delay(20);KeyValue=4;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)==0){HAL_Delay(20);KeyValue=5;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)==0){HAL_Delay(20);KeyValue=6;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)==0);HAL_Delay(20);}else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)==0){HAL_Delay(20);KeyValue=7;while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)==0);HAL_Delay(20);}这是扫描第()行
A. 1
B. 2
C. 3
D. 4
ReadPB=LL_GPIO_ReadInputPort(GPIOB);if((ReadPB & 0xf0) != 0xf0){switch(ReadPB & 0xf0){case 0xe0:KeyValue=4*i ;break;case 0xd0:KeyValue=4*i+1;break;case 0xb0:KeyValue=4*i+2;break;case 0x70:KeyValue=4*i+3;break;default:;}}这段程序中:条件ReadPB & 0xf0) != 0xf0目的是()
A. 屏蔽第四位
B. 屏蔽低四位
C. 屏蔽高四位
D. 屏蔽第五位
由于HAL库中只有对某一个GPIO引脚进行读写的API函数,而没有对整个GPIO端口进行读写的API函数,因此在编制矩阵式键盘行扫描程序的时候很容易.
A. 对
B. 错
字节操作法将矩阵式键盘控制行列的8个GPIO引脚PB0~PB7作为一个字节,通过与流水灯类似的移位算法来实现行线的循环置高电平,通过“位与”运算符来判定按键是否按下。
A. 对
B. 错