我可以使用此repository中提供的示例代码来读取DS18B20传感器。
使用标准的Espressif ESP32-WROOM-32(又名ESP32-DevKitC),它使用40 MHz XTAL,效果很好。
我无法使用{26} XTAL使用Allnet-IOT-WLAN运行同一示例。
我怀疑问题与RMT initialization有关。初始化使用:
rmt_tx.clk_div = 80;
我没有为clk_div
尝试过其他设置。
有人知道如何将DS18B20传感器与ESP-IDF一起使用,而是使用具有26 MHz XTAL的板而不是更标准的40 MHz板吗?
I (0) cpu_start: Starting scheduler on APP CPU.
Find devices:
0 : d4000008e40d7428
1 : f8000008e3632528
Found 2 devices
Device 1502162ca5b2ee28 is not present
Temperature readings (degrees C): sample 1
0: 22.3 0 errors
1: 21.8 0 errors
Temperature readings (degrees C): sample 2
0: 22.3 0 errors
1: 21.9 0 errors
I (0) cpu_start: Starting scheduler on APP CPU.
Find devices:
Found 0 devices
E (6780) owb_rmt: rx_items == 0
E (6880) owb_rmt: rx_items == 0
E (6980) owb_rmt: rx_items == 0
答案 0 :(得分:0)
使用不同的XTAL时钟频率进行RMT初始化没有区别。
D (2319) rmt: Rmt Tx Channel 1|Gpio 25|Sclk_Hz 80000000|Div 80|Carrier_Hz 0|Duty 35
D (2319) intr_alloc: Connected src 47 to int 13 (cpu 0)
D (2319) rmt: Rmt Rx Channel 0|Gpio 25|Sclk_Hz 80000000|Div 80|Thresold 77|Filter 30
两者都使用相同的80 MHx源。
我使用了错误的引脚图。我已经用更多的simple example测试了RMT,发现引脚排列错误。
DS18b20传感器与带有esp32-ds18b20库的26 MHz XTAL一起很好地工作。