Setting Serial Data/Parity/Stop Bits


hello,

new forum member , arduino novice.

spent last day , half trying set arduino r3's digital 0 (rx) pin receive serial data external device send 7 data bits, parity, , 1 stop bit.

at moment have adafruit pro trinket 5v standing in external device (easier set outputs fixed variable).

here simple sketches using test transmissions:

transmitter (protrinket):

void setup() {
 // put setup code here, run once:

 serial.begin(9600, serial_7e1);
}

void loop() {
 // put main code here, run repeatedly:
serial.write('d');
delay(1000);
}

receiver (uno):
int state;
void setup() {
 // put setup code here, run once:
 serial.begin(9600, serial_7e1);
}

void loop() {
 // put main code here, run repeatedly:
  if (serial.available() > 0) {
     state=serial.read();
     serial.println(state);
      }
   }


i set serial.begin according page: https://www.arduino.cc/en/serial/begin

however, data not coming through correctly. example, if send 'd' receive: 6¸[] (the [] being enclosed box). seems though receive correct numbers, long decimal equivalent of ascii character includes following numbers: 0, 3, 5, 6, 9. never receive digits 1, 2, 4, 7. example if send '5' receive 53[] (i box no matter what).

interestingly, if leave transmitter set serial_7e1 , change receiver serial_8n1 perfect data.

i feel must have oversimplified or missing important entirely, seems though i'm not that far off. did read bit altering registers parity, etc here: http://forum.arduino.cc/index.php?topic=15615.0, though admittedly exceeds level of understanding.

any pointers or information appreciated. thanks.


**update**
more reading/trial , error , i've concluded bytes characters include odd number of high bits ones aren't transmitting correctly. leads me believe parity causing issue somehow.

additionally, instead of using serial_7e1 context, used ucsr0c=0x24 tp modify register , received exact same results, appears configuration declaration 'ok'.

also, wrong serial_7e1 -> serial_8n1 being correct. characters correct, not all.



so i'm down figuring out why parity isn't working me, insight?

i need serial_1n1, getting error " 'serial_1n1' not declared in scope"


Arduino Forum > Using Arduino > Programming Questions > Setting Serial Data/Parity/Stop Bits


arduino

Comments