File tree 1 file changed +5
-4
lines changed
1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change 3
3
#include " util/OneWire_direct_gpio.h"
4
4
5
5
#define SOFTSERIAL_BUFF_SIZE 255
6
+ #define SOFTSERIAL_RX_TIMEOUT 3000
6
7
static float timedelay = 0 ;
7
8
static uint8_t Recev[8 ] ={0 };
8
9
static uint8_t temp_bin = 0 ;
@@ -78,7 +79,7 @@ pbuffer(0)
78
79
79
80
}
80
81
81
- // IO模拟串å£åˆå§‹åŒ ?
82
+ // IO模拟串口初始� ?
82
83
void softSerial::begin (uint16_t Baudrate)
83
84
{
84
85
timedelay = 1000000 /Baudrate;
@@ -119,8 +120,8 @@ void softSerial::receiverBegin(void)
119
120
delayTiker ((uint32_t )(timedelay * tikerInUs)-tcnt);
120
121
121
122
uint8_t data = 0 ;
122
- while ( 1 )
123
- {
123
+ auto start = millis ();
124
+ do {
124
125
for ( uint8_t count = 0 ; count < 8 ; count++){
125
126
data |= DIRECT_READ (_rxbaseReg, _rxbitmask)<<count;
126
127
delayus (timedelay);
@@ -151,7 +152,7 @@ void softSerial::receiverBegin(void)
151
152
};
152
153
delayus (timedelay);
153
154
data=0 ;
154
- }
155
+ } while ( millis () - start < SOFTSERIAL_RX_TIMEOUT);
155
156
}
156
157
157
158
int softSerial::read (void )
You can’t perform that action at this time.
0 commit comments