mirror of
https://github.com/adafruit/DHT-sensor-library.git
synced 2023-10-23 22:20:38 +03:00
Fix infinite loop on STM32F103
When trying to read temperature from a DHT11 when the sensor was disconnected, the program would encounter an infinite loop in DHT::expectPulse, because count would keep overflowing.
This commit is contained in:
parent
ce31485de7
commit
2470b8a3a1
4
DHT.cpp
4
DHT.cpp
@ -360,7 +360,9 @@ bool DHT::read(bool force) {
|
|||||||
// in the very latest IDE versions):
|
// in the very latest IDE versions):
|
||||||
// https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_pulse.c
|
// https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_pulse.c
|
||||||
uint32_t DHT::expectPulse(bool level) {
|
uint32_t DHT::expectPulse(bool level) {
|
||||||
#if (F_CPU > 16000000L)
|
// F_CPU is not be known at compile time on platforms such as STM32F103.
|
||||||
|
// The preprocessor seems to evaluate it to zero in that case.
|
||||||
|
#if (F_CPU > 16000000L) || (F_CPU == 0L)
|
||||||
uint32_t count = 0;
|
uint32_t count = 0;
|
||||||
#else
|
#else
|
||||||
uint16_t count = 0; // To work fast enough on slower AVR boards
|
uint16_t count = 0; // To work fast enough on slower AVR boards
|
||||||
|
Loading…
x
Reference in New Issue
Block a user