2014-08-03 02:35 PM
I am using an STM32F407 to receive data via UART and seem to be getting false FE interrupts. There are two reasons why I believe that they are false:
2014-08-03 04:13 PM
Well you'd probably do better using a logic analyzer, and toggling a GPIO bit when you see the error, and then try to correlate the two.
Do you need 2 stop bits? Is the next start bit falling within the stop zone? Is it recognizing a glitch as a start bit, and then rejecting it?2014-08-12 05:23 AM
After some looking, I have solved my problem. ST UARTS include the parity bit as the MSb in the data bits. So 8E2 needs to be set up with a 9 bit word, not an 8 bit word.
I am getting this information from RM0090 Rev6: CR1->PCE bit explanationAm I correct in this assessment?I did not expect this to be the case; I expected that the parity bit would be found after the MSb of what we call the data byte, not to be the MSb of the data byte. Is there a standard implementation for this?2014-08-12 08:05 AM
Yes, 8-bit + parity is configured as 9-bit in STM32 implementation.
2014-08-13 11:03 AM
Do you know if this is a normal way of doing it or something strange the ST does?
2014-08-13 12:01 PM
I think it simplifies the silicon implementation. Others might mask it by having multiple bits documented to support 7N1, 7O1, 7E1, 8N1, 8O1, 8E1, etc or hidden it in the API.