cancel
Showing results for 
Search instead for 
Did you mean: 

4 x 4 keypad with Nucleo 411RE and HAL

Roman_E
Associate II

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;
}
0 REPLIES 0