mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-15 17:02:53 +08:00
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
|
#include "PikaPiZero_KEY.h"
|
||
|
#include "main.h"
|
||
|
|
||
|
int PikaPiZero_KEY_get(PikaObj *self){
|
||
|
/* SW0 */
|
||
|
if(LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_0)){
|
||
|
return 0;
|
||
|
}
|
||
|
/* SW1 */
|
||
|
if(!LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_15)){
|
||
|
return 1;
|
||
|
}
|
||
|
/* SW2 */
|
||
|
if(!LL_GPIO_IsInputPinSet(GPIOB, LL_GPIO_PIN_6)){
|
||
|
return 2;
|
||
|
}
|
||
|
/* SW3 */
|
||
|
if(!LL_GPIO_IsInputPinSet(GPIOC, LL_GPIO_PIN_13)){
|
||
|
return 3;
|
||
|
}
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
void PikaPiZero_KEY_init(PikaObj *self){
|
||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||
|
|
||
|
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||
|
/*Configure GPIO*/
|
||
|
/* SW0 */
|
||
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_0;
|
||
|
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
|
||
|
GPIO_InitStruct.Pull = LL_GPIO_PULL_DOWN;
|
||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||
|
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||
|
/* SW1 */
|
||
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_15;
|
||
|
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
|
||
|
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||
|
/* SW3 */
|
||
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_13;
|
||
|
LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||
|
/* SW2 */
|
||
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_6;
|
||
|
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||
|
}
|