實物圖如下:
此編程很簡答。
編碼已經都配置好了,單片機只需要讀取模塊的引腳是否爲高電平就可以了。
簡單驗證代碼如下:串口1查看效果,這裏只給出while(1)裏面的代碼
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin) == 1)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin) == 1)
{
printf("\n\r**按鍵安了B鍵**\n\r");
}
while(HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin) == 1);
}
if(HAL_GPIO_ReadPin(D1_GPIO_Port,D1_Pin) == 1)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(D1_GPIO_Port,D1_Pin) == 1)
{
printf("\n\r**按鍵安了D鍵**\n\r");
}
while(HAL_GPIO_ReadPin(D1_GPIO_Port,D1_Pin) == 1);
}
if(HAL_GPIO_ReadPin(D2_GPIO_Port,D2_Pin) == 1)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(D2_GPIO_Port,D2_Pin) == 1)
{
printf("\n\r**按鍵安了A鍵**\n\r");
}
while(HAL_GPIO_ReadPin(D2_GPIO_Port,D2_Pin) == 1);
}
if(HAL_GPIO_ReadPin(D3_GPIO_Port,D3_Pin) == 1)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(D3_GPIO_Port,D3_Pin) == 1)
{
printf("\n\r**按鍵安了C鍵**\n\r");
}
while(HAL_GPIO_ReadPin(D3_GPIO_Port,D3_Pin) == 1);
}
if(HAL_GPIO_ReadPin(VT_GPIO_Port,VT_Pin) == 1)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(VT_GPIO_Port,VT_Pin) == 1)
{
printf("\n\r**按鍵安了ABCD鍵**\n\r");
}
while(HAL_GPIO_ReadPin(VT_GPIO_Port,VT_Pin) == 1);
}
}
效果: