1
\$\begingroup\$

What FD, FE and FF hex values of chars represent in UART communication? For some time my UART won't work, and always returning me those three?

\$\endgroup\$
4
  • 2
    \$\begingroup\$ Are both DTE and DCE set to matching baud rate, character length, parity, stop bits (e.g. 9600 8N1 for example)? When was the system previously working? What could have changed? What data was expected and how is it encoded before sending to UART? (UART only sends raw data, regardless of what encoding is used.) \$\endgroup\$
    – MarkU
    Sep 4, 2015 at 7:18
  • 1
    \$\begingroup\$ One common beginner mistake is not to have GND between DTE and DCE connected, wich can lead to non-working or unreliable data transfer. \$\endgroup\$
    – Rev
    Sep 4, 2015 at 7:19
  • \$\begingroup\$ In binary, FD is 11111101, FE is 11111110, and FF is 11111111. There are lots of 1-level bits on your signal line … \$\endgroup\$
    – CL.
    Sep 4, 2015 at 8:08
  • \$\begingroup\$ If you are expecting character data, the bytes FE and FF are used in various combinations as a BOM to inform the reader that the following characters are/are not Unicode characters. \$\endgroup\$ Sep 4, 2015 at 9:11

2 Answers 2

2
\$\begingroup\$

They often mean that communications do not work properly. The very first bit (the start bit) appears, but the data bits do not. Common reasons for that are:

  • Bad connection in ground or data line (high resistance or capacitance)
  • Sender's baudrate is way too high (sender sends at 57600, receiver listens at 9600)
  • Sender's voltage is too low (1.8V sender sends data to 5.0V receiver)
  • Power supply problems (regulator is overloaded or oscillating because capacitors are not big enough)
\$\endgroup\$
1
  • \$\begingroup\$ And noise pick up or loose connections could cause spurious start bits. Feel free to add to your answer \$\endgroup\$
    – KalleMP
    Sep 4, 2015 at 19:21
3
\$\begingroup\$

Nothing, they're just bytes. Why your device produces them and how your terminal emulator interprets them is implementation-specific, but they don't mean anything in a general sense.

\$\endgroup\$
2
  • \$\begingroup\$ They are bytes because they cannot be shown (UTF-8 chars). I'll try to give you UTF-8 hex codes for these three. \$\endgroup\$
    – Junior
    Sep 4, 2015 at 7:00
  • 2
    \$\begingroup\$ @Junior: Its not really relevant. \$\endgroup\$
    – Rev
    Sep 4, 2015 at 7:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.