Question
Activating USART
Hi,
I have a Problem with the NUCLEO-L476RG.
I tried to activate USART2.
Sending a single Char to a Terminal Programm like Putty or HTERM.
I took the guide from the reference Manual on Page 1341.
But it wont work.
#include "stm32l4xx.h"
#include "stm32l4xx_nucleo.h"
int main(void)
{
//MSI CLK setup
RCC->CR |=RCC_CR_MSIRGSEL;// enable the MSI CLK
RCC->CR &= RCC_CR_MSIRANGE_0;
// deleting the reset value
RCC->CR |= RCC_CR_MSIRANGE_11;
// setting MSI CLK to 48MHz
// USART Setting
RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN;
GPIOA->MODER &= ~GPIO_MODER_MODER2_1;
//alternetive mode for PA2
GPIOA->AFR[0] |= 0b0111 << GPIO_AFRL_AFSEL2_Pos;
//alternetive function 7 for PA2
RCC->APB1ENR1 |= RCC_APB1ENR1_USART2EN;
//enable clock for Usart2
//Guide on Page 1341
USART2->CR1 |= USART_CR1_M;
// setting the word length
USART2->BRR = 417;
// setting 115200 Baud
//=> 48e6/115200=416,666666
// Stop Bit Programming not necessary,
//reset value -> 1 Stop Bit
// DMA not necessary , or isn't it ?
USART2->CR1 |= USART_CR1_UE|USART_CR1_TE;
// USART2 Enable , Transmitter Enable
char c = 'C';
for(;;){
volatile unsigned int i =4800000;
while(i--);
while (
(USART2->ISR & USART_ISR_TXE) == 0);
USART2->TDR=c;
}
}Have i forgotten something or done anything wrong?
Thanks,
Dominik
