Fixed issue in F1 and F3 with HardwareSerial read(), which should return -1 if no data in the input buffer, (be non-blocking)
This commit is contained in:
parent
8c6f302e9c
commit
388e8efeb6
|
@ -159,10 +159,11 @@ void HardwareSerial::end(void) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int HardwareSerial::read(void) {
|
int HardwareSerial::read(void) {
|
||||||
// Block until a byte becomes available, to save user confusion.
|
if(usart_data_available(usart_device) > 0) {
|
||||||
while (!this->available())
|
return usart_getc(usart_device);
|
||||||
;
|
} else {
|
||||||
return usart_getc(this->usart_device);
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int HardwareSerial::available(void) {
|
int HardwareSerial::available(void) {
|
||||||
|
|
|
@ -118,11 +118,12 @@ void HardwareSerial::end(void) {
|
||||||
* I/O
|
* I/O
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint8 HardwareSerial::read(void) {
|
int HardwareSerial::read(void) {
|
||||||
// Block until a byte becomes available, to save user confusion.
|
if(usart_data_available(usart_device) > 0) {
|
||||||
while (!this->available())
|
return usart_getc(usart_device);
|
||||||
;
|
} else {
|
||||||
return usart_getc(this->usart_device);
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 HardwareSerial::available(void) {
|
uint32 HardwareSerial::available(void) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
|
|
||||||
/* I/O */
|
/* I/O */
|
||||||
uint32 available(void);
|
uint32 available(void);
|
||||||
uint8 read(void);
|
int read(void);
|
||||||
void flush(void);
|
void flush(void);
|
||||||
virtual void write(unsigned char);
|
virtual void write(unsigned char);
|
||||||
using Print::write;
|
using Print::write;
|
||||||
|
|
Loading…
Reference in New Issue