Solved
Configure USART3 at STM32MP157D-DK1
Hello Friends,
I am trying to configure USART3 as UART full duplex on the STM32MP157 evaluation board. The pin configuration for USART seems to be working correctly, but I’m having trouble with the USART3 Control Register1 & BRR . Can anyone help me identify what might be wrong with the code?
Code:
/*---------------------PIN CONFIGURATION-----------------*/
RCC->MC_AHB4ENSETR |= (1<<1); //ENABLE GPIOB PERIP. CLOCK ENABLE
/*------------CHANGE MODER TO ALTERNATE FUNCTION MODE (10)--------------*/
//PB 10 -- TX_USART3
//PB 12 -- RX_USART3
GPIOB->MODER |= (1<<21); //pb10
GPIOB->MODER &= ~(1<<20);
GPIOB->MODER |= (1<<25); //pb12
GPIOB->MODER &= ~(1<<24);
/*-----------SET GPIO ALTERNATE FUNCTION REGISTER-----------------------*/
//AF7-----USART AVAILAVBLE AT AF7 IN DIAGRAM (AF7 = 0111 =7 , AF8=1000=8 - GPIO ALTERNATE REGISTER)
//ARF - [0] (LOW_REGISTER), [1] (HIGH_REGISTER)
GPIOB->AFR[0] = 0x00; //ARF LOW = 0 HAS 1 TO 7, ARF[1] 10, 12PIN
GPIOB->AFR[1] |= (7<<8); //PB10 - START 11 10 9 8 ----- 0111
GPIOB->AFR[1] |= (8<<16); //PB12 - START 19 18 17 16 ----- 1000
/*---------------------------------------------------------*/
/*-----------------UART CONFIGURATION----------------------*/
/*-----------------UART CONTTROL REGISTER 1----------------*/
//SET UE,M,TE,RE
USART3->CR1 = 0x00; //CLAER ALL
// USART3->CR1 &= ~(1<<0); //FOR 8BIT DATA M0,M1 = 00
// USART3->CR1 &= ~(1<<0);
USART3->CR1 |= (1<<2); //RE
USART3->CR1 |= (1<<3); //TE
/*----------------SET BAUD RATE------------------------*/
USART3->BRR = (38<<4); //SET BAUDRATE TO 115200
/*-----------------------------------------------------*/
USART3->CR1 |= (1<<0); //UE
/*------------------------------------------------*/