user11929: On my Uno-equivalent Arduino, a SoftwareSerial connection (on RX, TX = 8, 9) is working*, while a hardware serial connection to the same device, set up in the same way (but on pins RX, TX = 0, 1) is not working. Why is the hardware serial setup not working?
*By working I mean receiving a byte from the external device
Edit: as a simple example:
void setup() {
  Serial.begin(38000);
  pinMode(7, OUTPUT);
}

void draw() {
  if (Serial.available() > 0) {
    Serial.read();
    tone(7, 440, 1000);
  }
}

The above, using Serial, doesn't work, whereas
#include <SoftwareSerial.h>

SoftwareSerial serial(8, 9);

void setup() {
  serial.begin(38000);
  pinMode(7, OUTPUT);
}

void draw() {
  if (serial.available() > 0) {
    serial.read();
    tone(7, 440, 1000);
  }
}

does work.

I don't know if this helps, but connecting RX/TX through an LED to ground gave me the following, using Serial on (0, 1) and SoftwareSerial on (8, 9):
Serial
RX: bright
TX: bright
SoftwareSerial
RX: dim (but still lit)
TX: bright  
Is the fact that RX is dim using SoftwareSerial significant?

user14620: There may be several reasons

Be sure uC pin connect pin header
In setup part, you write Serial.begin(xxxx);
After serial begin, don't change this pins IO features(Input, output)

Please check that after if not solve, please share code

user60070: I would check if the arduino you are using supports your selected baudrate.
38000 is not a standard rate and it could be, that the hardware is not able to work at it with the needed precision. 
The software serial (and most USB serial dongles) could use any baudrate, but not the limited hardware within most arduinos.

11929: <p>On my Uno-equivalent Arduino, a SoftwareSerial connection (on RX, TX = 8, 9) is working*, while a hardware serial connection to the same device, set up in the same way (but on pins RX, TX = 0, 1) is not working. Why is the hardware serial setup not working?</p>

<p>*By working I mean receiving a byte from the external device</p>

<p><strong>Edit:</strong> as a simple example:</p>

<pre><code>void setup() {
  Serial.begin(38000);
  pinMode(7, OUTPUT);
}

void draw() {
  if (Serial.available() &gt; 0) {
    Serial.read();
    tone(7, 440, 1000);
  }
}
</code></pre>

<p>The above, using <code>Serial</code>, doesn't work, whereas</p>

<pre><code>#include &lt;SoftwareSerial.h&gt;

SoftwareSerial serial(8, 9);

void setup() {
  serial.begin(38000);
  pinMode(7, OUTPUT);
}

void draw() {
  if (serial.available() &gt; 0) {
    serial.read();
    tone(7, 440, 1000);
  }
}
</code></pre>

<p>does work.</p>

<hr>

<p>I don't know if this helps, but connecting RX/TX through an LED to ground gave me the following, using Serial on (0, 1) and SoftwareSerial on (8, 9):</p>

<p><strong>Serial</strong><br>
RX: bright<br>
TX: bright<br>
<strong>SoftwareSerial</strong><br>
RX: dim (but still lit)<br>
TX: bright  </p>

<p>Is the fact that RX is dim using SoftwareSerial significant?</p>
 14620: <p>There may be several reasons</p>

<ol>
<li>Be sure uC pin connect pin header</li>
<li>In setup part, you write Serial.begin(xxxx);</li>
<li>After serial begin, don't change this pins IO features(Input, output)</li>
</ol>

<p>Please check that after if not solve, please share code</p>
 60070: <p>I would check if the arduino you are using supports your selected baudrate.</p>

<p>38000 is not a standard rate and it could be, that the hardware is not able to work at it with the needed precision. 
The software serial (and most USB serial dongles) could use any baudrate, but not the limited hardware within most arduinos.</p>
