2014-03-11 10:56 AM
Hi everyone,
the title says it all. Scope tells me the timing is fine and the signal looks like it should. Receiving on the other end works. Except the MSB always being set to 1, no matter if I try to send values higher or lower than 127. The debugger confirms that all the settings are fine (USART_CR1 - CR3). USART_DR is getting the correct value ( In my case 0x10 ). USART_SR shows no errors either. Any advice would be appreciated.The init looks like this: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOC, UART5_TX GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); //GPIOD, UART5_RX GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStructure); //UART5 -> 2400B, 8-E-1 USART_InitStructure.USART_BaudRate = 2400; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_Parity = USART_Parity_Even; //USART_Parity_Even; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(UART5, &USART_InitStructure); //Init USART_Cmd(UART5, ENABLE); #stm32-f107-uart2014-03-11 11:29 AM
Parity is the NINTH bit
USART_InitStructure.USART_WordLength = USART_WordLength_9b;2014-03-12 05:12 AM
*facepalm* thank you :)