EmbDev.net

Forum: µC & Digital Electronics STM32F107 USART Init --> Rubbish Output


von Marco (Guest)


Rate this post
useful
not useful
Hi,

While configuring my STM32F107's USART, there is a random byte outputted 
on the tx-pin. A modem that is connected to the serial port gets 
confused by this random byte and refuses to work.

Here's the initialization code:
1
      AFIO->MAPR   &= ~(AFIO_MAPR_USART2_REMAP);  /* clear USART2 remap */
2
      RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;         /* enable clock for Alternate Function */
3
      AFIO->MAPR   |= AFIO_MAPR_USART2_REMAP;     /* set   USART2 remap */
4
      RCC->APB2ENR |=  RCC_APB2ENR_IOPDEN;        /* enable clock for GPIOD */
5
      GPIOD->CRL   &= ~(0xFFUL  << 20);           /* Clear PD5, PD6 */
6
      GPIOD->CRL   |=  (0x0BUL  << 20);           /* USART2 Tx (PD5)  alternate output push-pull */
7
      GPIOD->CRL   |=  (0x04UL  << 24);           /* USART2 Rx (PD6)  input floating */

The random byte appears with the configuration for pin PD5 as alternate 
output push-pull.

Any hints or ideas on how to not get this rubbish-byte on 
initialization?

Thanks!

--
Regards

von (prx) A. K. (prx)


Rate this post
useful
not useful
If the USART is configured after the pins have been defined as alternate 
function, the intial state of Tx could be undefined.

von Marco (Guest)


Rate this post
useful
not useful
So you mean the order of the initialization is wrong? Configuring the 
GPIO pins first and then the alternate function?

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.