I tried to get temperature value from DS18b20 on my BW16 board. But I can’t get any useful value from sensor. I cannot find any example of using DS18b20 with RTL8720DN on the Internet.
Here is my code:
/********************************************************************/
// First we include the libraries
#include <OneWire.h>
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/********************************************************************/
void setup(void)
{
// start serial port
Serial.begin(115200);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
float temperature;
sensors.requestTemperatures();
temperature = sensors.getTempCByIndex(0);
Serial.println(temperature);
delay(1000);
}
Thanks.
1 Like
Hi @adadadd
Please check out this link @
PKS
AmebaOneWire/PKøµ·PAmebaOneWire/OneWire/PKøµ·PAmebaOneWire/OneWire/examples/PKøµ·P2AmebaOneWire/OneWire/examples/DS18x20_Temperature/PKøµ·P/SC·öGIAmebaOneWire/OneWire/examples/DS18x20_Temperature/DS18x20_Temperature.pdeVmoÓ0þÄ8)4ÉÆÚQÆ7 @BSå&ׯÄí¬+0~;ç4ÝÚ!ªM»ç¹óÝ=Î]^ge#<ýPã.1*ݾuûÖh~^|J&Ò8´Ï»4ÏX5(nÉèå«£u.´nF«Õ*j¾Ë,ÊD5ÒµZt>+ù\Í6º*7~"deÉÔ6:ÙK&×±rôtÁ¬ü!a-Ú;Û¼/QÍ[©Em©älsv*j-E9{ë°MÒ]Æ« SB54¼$Áa4~WX)3Tüà\ðê¶ Ìå~ݾð %ge4Ç%¯ã£oßºÜØB\1¯5n.âÃZà Äý¢^78Sý}Î4û¤gý
Ësùmâ¥`2,oUVH¬äÚ>5ÿ|ÜÉU¤É¬÷Ð´É ¼ÖeÞ¨t>ªh0î5í Ù¤¡g¿_ÇôqÜ-H¤êÔöæÒw3|üðN©}Ün
ý< ý<|x=îäûp_6Õoü,×/¿;ânO|K<yÉlbMCáÎÛßñÙkwN?ÚÎYÉó;>èÝ4÷oýÔ4.ÊÜwGói¤ (xV@VðÆX«×tëRûØ2¦â$~rS¬§'Ý´ºî ÊÜM|ì}óq²Ég.ý^aK'ÿÇöܲí`ÇÿÄNÿ;Mÿ:ÇkK}#ð<çveÿ"iHmÖänG7ÔLKõcàûßÎ[kÂnÍ÷k|qxBB°[¥¤Aõ9JÅEU¼I¦¸Ñ
±Bi$iÛ7XçnºIKb#?\ÅÖsñã¸RYvYnÙdé;pPñe¡ös´DÁ
¼ut67
Éè3ûT- ±®#F¯fÿÞãµýxþÒ-wáDçL2júQ¦»bðب.;O},Ýäï:÷*Wdæ¸M4Ý>Õ9Û)U¾äÅ'L{UÈmÅrS4{%©9ÙáUù²!LäÝñE?µMæêjASñ3Ý2ªmzã9f¬UØ5é'É̹Å5íqàIAÍR!Ú2߸9PÉÄÔ0 Ëäh¦vfC§r±\±µò°Ê{ã9ÖdB_tÔ7tòçvà µäæÒö GÉVT·íÉ<}Jû¿]µâ³i§ÿN3:!u^æÛ8L
û±!1I²Õ4á9ÆÔ'V7`6øA&ÚÚøW×XòsRõEK¤×½Wºù¹G¯^½"ÌÆþÿÈÅï[åèÜGOêÎl±Ü$xfQì ì2êQ7ä¡)ª¹µ[f¢ÛräTÑõ}?Q
cYõyË$Çíbþ3Â¾áø ?Êû*RzÉÕ ;$ÌÉ8úÄáuÄA$=ÄÁV#úغÞJhôÌ·T4¯°ÕîµËl¸}^"<Ü9Ô¿IgühBE=HÕîÀo¿|ß nj¯°úWÁ½}@öáî ûjc0ð¯²PKøµ·P,AmebaOneWire/OneWire/examples/DS2408_Switch/PKøµ·PåÑÍwÀ=AmebaOneWire/OneWire/examples/DS2408_Switch/DS2408_Switch.pdeUínÓ0ý
ïpÒH·¬MW4ÊÊ&±Á`âkZA A5¹ÉíbÚí¬Twç^;I;¶A,}î¹çØ{$UZTÂó
¿HÝüðÁý÷{[îüï>I0Ü9ÎRXÀ,3hãtiN¸ýb¤sÓ%¼.P)ødpA+1\úOáÀÈ´m.Ûȱ#(íÐê9Ö©÷=`>«Bþ@kë@ª²r=BÒJm×bzì WQQÒYpÚE)ÊøÐR*ÊnÐssyè»§3Xê
¤µ"TÏçBeñY»[Ð\3`70¦÷¸¶ÁÊÉÜR]ÂÌè9¥²~±§±¹®*ÐOÞBYÅNURÖ¡ D=ÖîJËÎTîhI3*z^¸-$^õ'µP)Rgªu
TxtàñÀj HFôxbèu{;é7F#EÑ-9_ľÉÉááÞ¼úÚÝÙL~&³5Ôoþ#gÕµtn*bìï¶És×#{ ª¼EÝP_׺öÕþUÇC x?îÆ7}%ë£òú¥Ü£õv Ójö?z=8#á¥Ë9T,<Cfd8«a
Å>*+²Çñù1 °²X²*ðÜ$DȾZ8;ýH/AóÚÐá°¾ù¾Ñ¶ÝIZº÷×0<´CïÕ©ïbtFí&sµ·=ÉbtHçøíö N4_»ÜÆ =¹ÍþÞ!B?ÇFûZÃýý4ÇôÇEjÒþ^¨¤ßaÓ7ÛtnwßCâLÈ¢òǰU¸FÙÛ´¥i*lö
ºÊ¨Ú7SSîïþDº¡cRU9!U{KmP¬x÷?qoIG§Z×ãàqE<lK+¾høí9°Tuñëu£O)í%ÉõsSh½÷Uµ¯%+£fµèÏípâZ½¨°®EaÒÜÏó.a>hº
6í£í~W&ÌápQ35bI}òoʳªcekev`ã TýtòÃHËÿ{àJ2Û ²þ˳óáÜàã´û¬f¾ëÚ¸³I(j3uïÌI¿®¸Mµ1}-èPKøµ·P*AmebaOneWire/OneWire/examples/DS250x_PROM/PKøµ·P:Ñ¥9AmebaOneWire/OneWire/examples/DS250x_PROM/DS250x_PROM.pdeWiÓ0ý^ÿ0-Zâ¾/qK!7q[cÛÙRÿ7¶Z®jWM7×ñdt¬wëÅÞÙñey½¢ÚÙ¹U%¦ZR%+ëVä¤(¥£åèÅÃûÏèùÓÇ'{Ô£IY[ytöÔÞèÔxïÌT5Ü3H÷W¶¡B¾K¥¦MàÆâk!Ì\RÕ%Y#ø!ÂQO%UB1ÎÌ:*å¾*$©R fªAYCuãjë¥ïV$yéÐdj*ݪÙÜECjúܬեóC¡8I÷òÑÇâªèÔ¥rnú)ô ¼ ¥ÒÅ£t5¦`o¢ëUuÐÁ)á [/ÇeÅñr`±ÏW²®°ÆÈ" rÅhÑ <§RÍU@`5nW÷gÚH6h6õáé"ØPUH¾ÏÒб×ayHͶaȳ Ú¤RzBáû1dÐ:r6¸ÚëO¨¦« #³lNöð°ñð¡^~ì¾kÒ$Ì*ê©Hð:xCËX!b8
PÙtóùÍke}`¦°[Û©5^%ot-æ(Ñ,wCÿôîäpAù:9Ú.¥c;é}ÏbÄoVêÔFjCÖ5-§6ͼérÊl|.+ÉÔæäÔM@ß9yþ!.µnj¢ò½2a)éBã¯"ÙnöWP@ËÛÆÄÛð1
CÔ¸ªõjC'=Î &ÀW9¤G/n¿¸ÑF.=-«QUéDô¿k&ùEËSr*2×ÅT«JË]Ï )Mv_àáõ'î¿
y£Q:¤]we£¥ñxo/j<{ðüfǽc{êC§P_ËåÉú£+N£ùÕ( å?dµPi¶S A2Wé.Ljé*Kì¾@v.Ïu¼¸6³Ñ®ö¨âzöƧN±ú±Q¯w-¢Dy¹¿ÚëhëûçÚñr»@oߪôMÝзÑ8÷NNåÏûÏÇIï{/
r²\j;µ¶¹m8U( W¥+¤gukµ¦åîd[=¼ }áÙDw§÷ÞOvåPvé²á$»+c¶8Zr¼;ý®Ð·_q3#96'gF+£@Üyex¦eE§£ÖHMÅ/µXCþH$|æ{M¿ÜÓ_ãö7¿O:ÇJsð9[¯ÃDÔ$±
#þßn®°z,³Á]c¦MMQ¸bòÛʾ I¬<&¶fä&ÌBèbÒöW@Ø|úÉïÉ%$ôR¬<)Ѽë\Ú:Oz}:9PÙ^#N^>uS:y÷~¦ì*k?¶}ç|8ç)@´ßsØÐàÛÏZoò¹Üªÿä¾ëÂÚ)´éJüúEôÐ`áÃÒa8ö3Çï§µ/$åO$Ñ÷ùÂò¹ÄÇ
¼Ý vêW0pvKÿ·÷+ÞãÇcÀH©Ì Õn
s5 Â3²m
xq§&_,
sÛ¼ÆLmÅ;ä¾Ðdû¥áDËÖKpïBpH§,×hxÁ¦£vöÓ4iÝÀ±øùQ{Ît§õO®pÿ69x%þÀ`^Ï^^ÑN-¢f^âR$µö±äqñ11 Ý´SÂy>ÅÔº}Ù&ë}ªÜ«ÛÒýC7[ãQìRÛíÞ»ýv0ÉQâGå'7>)¼Jûb{ßìh¨mWÅ¢OEñéï°ñöy5¼Ô2f̧,9¡)o1ûàyÈl§"{Û6,ÑÑÈ÷Ýà àk2u's;ئÅM=Ïý}Ràìx¯ËtzßÇ3gÆ»LTª#+¾{%(ì«RÏHu±ë,ÜR>æ¼EqNã^TïhRnõ~»}PODOX¡Ù
o½Â½¡Ì¯ä®:g«õÚ%®¿¸yÿþN~¤o:8ÕÂ|"_Tö÷jç²ÔbÕ?sõ·»Ù-É+9w>V¥Ñ½ÂQ¬è½dMj/Q´Ý®aÁãDùÝï;iÖ~ãt#:ñ½÷ëç@ïPKøµ·P=#KòÜY!AmebaOneWire/OneWire/keywords.txtÍ
Â0Ïú½èQâUüQT(JLZ¬Ô¾½UZûwiÌm>f²C²Þ°ã:\rIì+(-ä,ÒpèeØq«kFò
÷:¯§\§ì7ªÒóH
0Âö)9 %ë.3».
ҨʺN¦ap5ûxXX£ÚÖå¦ìÈÇ` iCªõLó¨{k¾hË鼩#äqЦ?±äø÷ë[½bÏ¿ã¨vØ]7çåÁjïÞPKøµ·P*Üx·¹a!AmebaOneWire/OneWire/library.jsonTQkÛ0~ä?~ÚÀKÚ²Ò§6²90ÆØb_lÕ¶ÎN3¡ô¿ïäIØHºï»O§NóYæLÙd_~·Y®¶=«q$n}Dn¸
ÖÑ´xP{5ÙÉá¨98ö»àsðè<qýl$DÄî¹I¢B_²Äê\U>
This file has been truncated. show original
Please note that, some modifications are to be done to be compatiable with BW16 at line 254 of the OneWire.h
file
adadadd
December 8, 2021, 12:31pm
4
Thanks for your advice.
But I would like to ask more detail about it. Is that mean I should modify the content inside?
What I have done is:
#define DIRECT_MODE_INPUT(port, mask) ( *( (volatile uint32_t *)( 0x48014050 + ((uint32_t)port) * 0x400 ) ) &= ~mask )
#define DIRECT_MODE_OUTPUT(port, mask) ( *( (volatile uint32_t *)( 0x48014000 + ((uint32_t)port) * 0x400 ) ) |= mask )
Is there any more I should modify?
Thanks.
1 Like
Hi @xidameng 请问RTL8722DM需要做哪些设置才可以使用OneWire通信?我的应用跟题主一样,也是读DS18B20的数据。
Hi I have updated the AmebaOneWire
zip lib, you may find it under my repo through this PR
ambiot:dev
← xidameng:dev
opened 03:58AM - 14 Feb 22 UTC
已更新AmebaOneWire zip lib,更新形況可見這個PR
ambiot:dev
← xidameng:dev
opened 03:58AM - 14 Feb 22 UTC
OneWire is supported, you may see this link for a simple demo
Hi @xidameng 已经可以正常通信了,谢谢
Hello
I cant get it with my BW16 (RTL8720DN)
I download the @xidameng libs and connecting my ds18b20 to PA27 using a pull up resistor, and no way.
Besides I modified the onwire.h lib with the #define DIRECT_MODE_INPUT(port, mask) tips but no way.
I am using the example code provided inside the AmebaOneWire.zip for test.
Any help, please??