Hello,
After reading Issue:
https://code.google.com/p/arduino/issues/detail?id=871&can=1&q=Serial.flush
I still don't get it working. (I'm back to the beginning code for
HardwareSerial::flush.)
Now working with
- Arduino 1.6.4.
- Arduino Due + RS-485 module for Arduino (MAX485 )
- Arduino Uno + RS485 Shield V2
- With HardwareSerial::flush(code) ->
void HardwareSerial::flush()
{
// If we have never written a byte, no need to flush. This special
// case is needed since there is no way to force the TXC (transmit
// complete) bit to 1 during initialization
if (!_written)
return;
while (bit_is_set(*_ucsrb, UDRIE0) || bit_is_clear(*_ucsra, TXC0)) {
if (bit_is_clear(SREG, SREG_I) && bit_is_set(*_ucsrb, UDRIE0))
// Interrupts are globally disabled, but the DR empty
// interrupt should be enabled, so poll the DR empty flag to
// prevent deadlock
if (bit_is_set(*_ucsra, UDRE0))
_tx_udr_empty_irq();
}
// If we get here, nothing is queued anymore (DRIE is disabled) and
// the hardware finished tranmission (TXC is set).
}
The configuration is working, but the last character is wrongly received.
From Due -> Uno:
helloUno -> helloUnÿ (See last character )
Can anybody give me a hint/tip?
Tnx!
Original issue reported on code.google.com by hacou...@gmail.com on 18 Jun 2015 at 7:08
Original issue reported on code.google.com by
hacou...@gmail.com
on 18 Jun 2015 at 7:08Attachments: