2026-01-16 1:50 PM
I created standard project in CubeIDE for Nucleo 411RE ( with default settings)
I found some code (which interfaces 4x4 keypad) and try to repeat it with HAL
I setup pins PC0,PC1,PC2,PC3 with Input mode and Pull-up.
PC4,PC5,PC6,PC7 as Output and GPIO output level - High
all this based on my understanding code I try to repeat ( below )
Did I do correct repeating with HAL ? ( As I understand CubeIDE will generate GPIOs the same way as function ?
void keypad_init(void)
{
/*Enable clock access to GPIOC*/
RCC->AHB1ENR|=RCC_AHB1ENR_GPIOCEN;
/*Set PC0 to PC3 as input*/
GPIOC->MODER &= ~(GPIO_MODER_MODE0|GPIO_MODER_MODE1|GPIO_MODER_MODE2|GPIO_MODER_MODE3);
/* Activate internal pullup resistor for PC0 to PC3*/
GPIOC->PUPDR|=GPIO_PUPDR_PUPD0_0|GPIO_PUPDR_PUPD1_0|GPIO_PUPDR_PUPD2_0|GPIO_PUPDR_PUPD3_0;
/*Set PC4 to PC7 as output*/
GPIOC->MODER |= GPIO_MODER_MODE4_0|GPIO_MODER_MODE5_0|GPIO_MODER_MODE6_0|GPIO_MODER_MODE7_0;
GPIOC->MODER &=~( GPIO_MODER_MODE4_1|GPIO_MODER_MODE5_1|GPIO_MODER_MODE6_1|GPIO_MODER_MODE7_1);
/*Set PC4 to PC7 as high*/
GPIOC->BSRR = GPIO_BSRR_BS4|GPIO_BSRR_BS5|GPIO_BSRR_BS6|GPIO_BSRR_BS7;
}