Hello Muhammed,
No problem, just note the B_GPIO_CTL register has different bit’s meaning from the commonly used standards.
The *_MASK bits block (“0”) or allow (“1”) to write value into data bit. So if you want to have all port’s bits accessible you need use:
void GPIOB_Init(void)
{
B_GPIO_CTLH = (B_GPIO_CTLH_PE1M_MASK | // enable write to PE1;
B_GPIO_CTLH_PE2M_MASK | // enable write to PE2;
B_GPIO_CTLH_PE3M_MASK | // enable write to PE3;
B_GPIO_CTLH_PE4M_MASK | // enable write to PE4;
B_GPIO_CTLH_DIR1M_MASK | // enable write to DIR1;
B_GPIO_CTLH_DIR2M_MASK | // enable write to DIR2;
B_GPIO_CTLH_DIR3M_MASK); // enable write to DIR3;
// and then write values to low byte of B_GPIO_CTLL register;
B_GPIO_CTLL = (B_GPIO_CTLL_PE1_MASK | // PE1 enabled;
B_GPIO_CTLL_PE2_MASK | // PE2 enabled;
B_GPIO_CTLL_PE3_MASK | // PE3 enabled;
B_GPIO_CTLH_DIR1_MASK | // PE1 as output;
B_GPIO_CTLH_DIR2_MASK | // PE2 as output;
B_GPIO_CTLH_DIR3_MASK ); // PE3 as output;
}
Sorry I don’t have the board with MCU for test, but I hope my suggestion could help you.
Best Regards,
Stano.