{"id":458,"date":"2017-11-24T23:43:53","date_gmt":"2017-11-24T22:43:53","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=458"},"modified":"2017-12-30T19:38:01","modified_gmt":"2017-12-30T18:38:01","slug":"63-onewire_ds18xx-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=458","title":{"rendered":"63-OneWire_DS18XX-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=456\" title=\"62-OneWire_LoLevel-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 62-OneWire_LoLevel-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=460\" title=\"64-I2C_Slave-Library (STM32F4)\">64-I2C_Slave-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit dieser Library k\u00f6nnen die OneWire Temperatur Sensoren vom Typ DS1822, DS1820, DS18B20, DS18S20 an den STM32F4 angeschlossen werden.<\/p>\n<p>Die Sensoren haben einen Temperatur Bereich von -55\u00b0C bis +125\u00b0C. Die Aufl\u00f6sung liegt verschieden (je nach Typ) zwischen 0.0625\u00b0C und 0.5\u00b0C und die Genauigkeit auch je nach Typ zwischen +\/- 0,5\u00b0C und +\/- 2\u00b0C.<\/p>\n<p>Die Library unterst\u00fctzt alle 4 Typen und liefert die Temperatur als Float-Wert zur\u00fcck. Falls gew\u00fcnscht kann mit der Funktion \u201cUB_DS18XX_TempToStr\u201d der Wert in einen String umgewandelt werden. (Bei CoIDE ist dazu das Modul \u201cRetarget Printf\u201d n\u00f6tig).<\/p>\n<p>Bei den Sensor-Typen \u201cDS1822\u2033 und \u201cDS18B20\u2033 kann die Aufl\u00f6sung mit der Funktion \u201cUB_DS1822B20_SetResolution\u201d zwischen 9bit und 12bit ver\u00e4ndert werden. Um die Aufl\u00f6sung fest im EEprom des Sensors zu speichern gibt es die Funktion \u201cUB_DS1822B20_WriteResolution\u201d.<\/p>\n<p>Um einen Sensor auszulesen muss dessen eindeutiger RomCode bekannt sein. Daf\u00fcr kann die LoLevel-Funktion \u201cUB_OneWire_ReadRomCode\u201d benutzt werden. Um dann z.B. per Debugger die 8 Bytes auszulesen. (siehe Beispiel in der OneWire-LoLevel-Library)<\/p>\n<p>Wenn der RomCode bekannt ist, muss dieser als String mit 16 Hex-Ziffern den Temperatur-Funktionen \u00fcbergeben werden.<br \/>\nBei meinem Sensor lautet der RomCode : \u201c22h, 0Eh, 6Dh, 33h, 00h, 00h, 00h, BBh\u201d<br \/>\n<span style=\"text-decoration: underline;\">Vorsicht : das ist bei jedem Sensor eine andere Nummer !!<\/span><\/p>\n<p>Am Datenpin darf der 4k7 PullUp nicht vergessen werden und die Sensoren d\u00fcrfen nicht \u00fcber die Datenleitung versorgt werden, sondern brauchen eine eigene VCC.<\/p>\n<p>Weil der OneWire-Bus benutzt wird, wird auch die OneWire-LoLevel-Library ben\u00f6tigt.<\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : (Retarget Printf)\r\nBenutzte Librarys : STM32_UB_ONEWIRE<\/pre>\n<p><strong>Funktionen \u00a0:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">ErrorStatus UB_DS18XX_Init(void);                 \/\/ zum init der Library\r\nfloat UB_DS1822B20_ReadTemp(char *rom_code);      \/\/ Typ : DS1822, DS18B20\r\nfloat UB_DS1820S20_ReadTemp(char *rom_code);      \/\/ Typ : DS1820, DS18S20\r\nErrorStatus UB_DS1822B20_SetResolution(char *rom_code, uint8_t bit); \/\/ zum einstellen der Aufl\u00f6sung\r\nErrorStatus UB_DS1822B20_WriteResolution(char *rom_code, uint8_t bit); \/\/ zum speichern der Aufl\u00f6sung\r\nvoid UB_DS18XX_TempToStr(float wert, char *ptr);  \/\/ zum umwandeln der Temp in einen String<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 26.09.2013\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der DS18XX-Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_uart.h\"\r\n#include \"stm32_ub_ds18xx.h\"\r\n\r\nvoid Delay(volatile uint32_t nCount) {\r\n  while(nCount--) {\r\n  }\r\n}\r\n\r\nint main(void)\r\n{\r\n  float temp;\r\n  ErrorStatus check;\r\n  char buf[20];\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init vom UART\r\n  UB_Uart_Init();\r\n\r\n  \/\/ init vom DS1822\r\n  check=UB_DS18XX_Init();\r\n\r\n  if(check==ERROR) {\r\n    UB_Uart_SendString(COM3,\"error\",CRLF);\r\n  }\r\n\r\n  while(1)\r\n  {\r\n    if(check==SUCCESS) {\r\n      \/\/ kleine Pause\r\n      Delay(500000);\r\n      \/\/ Temperatur vom DS1822 auslesen\r\n      temp=UB_DS1822B20_ReadTemp(\"220E6D33000000BB\");\r\n      \/\/ in String umwandeln\r\n      UB_DS18XX_TempToStr(temp,buf);\r\n      \/\/ per UART senden\r\n      UB_Uart_SendString(COM3,buf,CRLF);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/09\/ub_stm32f4_onewire_ds1822_v102.zip\">ub_stm32f4_onewire_ds1822_v102<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/09\/Demo_63_OneWire_DS1822.zip\">Demo_63_OneWire_DS1822<\/a><\/p>\n<hr \/>\n<h3 id=\"comments-title\">22 Antworten auf <em>63-OneWire_DS18XX-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-847\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-847\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">28. September 2013 um 12:15<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>klasse!<br \/>\nfunktioniert perfekt (getestet mit ds18b20 und ds18s20)<br \/>\nUngewohnt kompliziert ist allerdings das auslesen des Romcodes und das anschlie\u00dfende selbstst\u00e4ndige wandeln in einen HEX-String)<br \/>\nEs w\u00e4re eine RomCode2Str hilfreich oder um das Problem zu umgehen k\u00f6nntest du die Funktion \u201cSkipRom\u201d vom Sensor nutzen.<\/p>\n<p>Gestern mit testen angefangen und gedacht, es w\u00e4re sch\u00f6n die Aufl\u00f6sung einstellen zu k\u00f6nnen und schon hast du es nachgereicht <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/><br \/>\nMan sollte allerdings beachten, dass die Einstellung bei jedem Einschalten gemacht werden muss und nicht dauerhaft im Sensor gespeichert wird.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-850\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-850\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">28. September 2013 um 15:21<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich dachte mir, man steckt ja nicht alle halbe stunde einen anderen Sensor dran, da ist der Aufwand zum auslesen dann nicht \u201csoo\u201d schlimm. Eine Funktion zum ausgeben als String k\u00f6nnte ich noch reinmachen. Und zum dauerhaften speichern gibt es theoretisch auch eine Funktion im Sensor. Version 1.2 : demn\u00e4chst in diesem Theater.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1175\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1175\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">19. Dezember 2013 um 23:52<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo Uwe ich habe die Lib gerade zur stemWIN hinzugef\u00fcgt. Funktioniert alles problemlos bis auf das ben\u00f6tigte Retarget Printf.<br \/>\nGeht das auch beim 429 und wenn ja wie?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1176\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-1176\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. Dezember 2013 um 00:34<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ok printf aus dem repo funktioniert<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1236\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1236\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">31. Dezember 2013 um 12:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich habe \u00f6fters, das als Ergebnis, 0,063 heraus kommt und dann wieder normal.<\/p>\n<p>Woran kann das liegen?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1578\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-1578\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/eb5c3dbc4d11aa3552b61efeee82e5d8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Helgo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">22. April 2014 um 14:18<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Getestet die Demo-Projekt mit DS18B20. Temperatur ist st\u00e4ndig -0,0625. Was k\u00f6nnte das Problem sein?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1583\" class=\"comment even depth-2\">\n<div id=\"comment-1583\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">23. April 2014 um 07:15<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>\u00c4ndere mal in stm32_ub_onewire.c Zeile 28<br \/>\nzu<br \/>\nvolatile uint32_t ow_akt_delay;<\/p>\n<p>Das hat zumindest meine Fehler beseitigt.<\/p>\n<p>Ansonsten stimmt dein Pullup Widerstand? Bei 3 Volt ist 3,3 K besser als 5 K wie empfohlen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1588\" class=\"comment odd alt depth-3\">\n<div id=\"comment-1588\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/eb5c3dbc4d11aa3552b61efeee82e5d8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Helgo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. April 2014 um 18:49<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Dankesch\u00f6n!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1589\" class=\"comment even depth-4\">\n<div id=\"comment-1589\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. April 2014 um 23:11<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Was war es nun?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1592\" class=\"comment odd alt depth-5\">\n<div id=\"comment-1592\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/eb5c3dbc4d11aa3552b61efeee82e5d8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Helgo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. April 2014 um 16:11<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Keine dieser Optionen ist nicht das Problem gel\u00f6st. Ich fing an, TMP35GT9Z Analog Devices verwenden.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-2758\" class=\"comment even depth-5\">\n<div id=\"comment-2758\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/4de9509b3774254ebbd01af76b716b1b?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Alex<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. Dezember 2014 um 22:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo, habe die Libary auf den STM32F0 angepasst. Habe das gleiche Problem mit dem -0,0625\u2026 gibt es noch andere L\u00f6sungsvorschl\u00e4ge?<\/p>\n<p>Ansonsten super Libary auf dem STM32F4 l\u00e4uft sie problemlos\u2026.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1593\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1593\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. April 2014 um 16:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>+\/- 3 Grad, da kann man auch den Finger in den Wind halten <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_biggrin.gif\" alt=\":D\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1594\" class=\"comment even depth-2\">\n<div id=\"comment-1594\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/eb5c3dbc4d11aa3552b61efeee82e5d8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Helgo<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. April 2014 um 17:25<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich w\u00fcrde den Finger in den Motor des Autos nicht halten.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2597\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2597\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/d8ed1cf45664b6fc0c1784f4425db4cf?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Zaxu<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">1. Dezember 2014 um 16:15<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>sorry but on wich pin should i use the tmperature sensor?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2599\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2599\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">1. Dezember 2014 um 19:18<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>you can use any free gpio pin. defined in the file \u201cstm32_ub_onewire.h\u201d the default pin is \u201cPD3\u2033 and dont forget the external 4k7 pull-up<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2920\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-2920\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/3f22c0b566eccf59bc076b4cb83f760b?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">dynahenry<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. Februar 2015 um 01:28<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Moin Uwe,<\/p>\n<p>Vielen Dank f\u00fcr die Libraries und f\u00fcr die viele Arbeit, die Du in die Dokumentation rein gesteckt hast. Es hat mir sehr geholfen die ersten Schritte mit dem STM32F407 Discovery zu machen.<br \/>\nNun komme ich nicht mehr weiter.<br \/>\nIch m\u00f6chte einen Temperaturlogger f\u00fcr mehrere Kan\u00e4le aufbauen. Dazu habe ich die Demos Lib63 und Lib32 kombiniert.<br \/>\nBeide Beispiele laufen f\u00fcr sich perfekt. Temperaturen werden gemessen und ich kann Text auf den USB-Stick schreiben.<br \/>\nIch habe die Demo Lib32 in die Demo63 kopiert und beschreibe zun\u00e4chst nur den Text auf den Stick. Dann springe ich in die Tempteraturmessung. Der Text wird korrekt in den USB-Stick geschrieben, doch die Temperaturmessungen sind falsch.<br \/>\nNormalerweise braucht eine 12Bit Messung ca. 700 ms. Steckt der USB-Stick, dann laufen die Messungen viel schneller und sind falsch. Ziehe ich den USB-Stick ab, sind die Messungen wieder ok.<br \/>\nIch vermute, da\u00df sich beide Demos irgendwie st\u00f6ren, wenn der USB-Stick steckt.<br \/>\nAber warum?<br \/>\nIch habe gesehen, da\u00df die OneWire Lib den TIM7 und einen Interrupt benutzt. Kann es da Konflikte geben, wenn der USB-Stick steckt? benutzt USB_MSC_HOST auch den TIM7 oder Interrupts?<br \/>\nWas kann ich tun? Ich habe das main.c mal angeh\u00e4ngt.<\/p>\n<p>Kannst Du oder jemand anders mir helfen?<\/p>\n<p>Gru\u00df Heinrich<\/p>\n<p>\/\/\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/>\n\/\/ File : main.c<br \/>\n\/\/ Datum : 26.09.2013<br \/>\n\/\/ Version : 1.0<br \/>\n\/\/ Autor : UB<br \/>\n\/\/ EMail : mc-4u(@)t-online.de<br \/>\n\/\/ Web : <a href=\"http:\/\/www.mikrocontroller-4u.de\/\" rel=\"nofollow\">http:\/\/www.mikrocontroller-4u.de<\/a><br \/>\n\/\/ CPU : STM32F4<br \/>\n\/\/ IDE : CooCox CoIDE 1.7.4<br \/>\n\/\/ GCC : 4.7 2012q4<br \/>\n\/\/ Module : CMSIS_BOOT, M4_CMSIS_CORE<br \/>\n\/\/ Funktion : Demo der DS18XX-Library kombiniert mit<br \/>\n\/\/ Funktion : Demo der USB-MSC-HOST-Library<br \/>\n\/\/ Hinweis : Diese zwei Files muessen auf 8MHz stehen<br \/>\n\/\/ \u201ccmsis_boot\/stm32f4xx.h\u201d<br \/>\n\/\/ \u201ccmsis_boot\/system_stm32f4xx.c\u201d<br \/>\n\/\/ History : Modifiziert von H.Fischer am 27.2.2015<br \/>\n\/\/\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<\/p>\n<p>#include \u201cmain.h\u201d<br \/>\n#include \u201cstm32_ub_led.h\u201d<br \/>\n#include \u201cstm32_ub_usb_msc_host.h\u201d<br \/>\n#include \u201cstm32_ub_uart.h\u201d<br \/>\n#include \u201cstm32_ub_ds18xx.h\u201d<br \/>\n#include \u201cstm32_ub_led.h\u201d<\/p>\n<p>void Delay(volatile uint32_t nCount) {<br \/>\nwhile(nCount\u2013) {<br \/>\n}<br \/>\n}<\/p>\n<p>float temp1, temp2, temp3;<br \/>\nErrorStatus check;<br \/>\nchar temp_buf[20];<\/p>\n<p>int main(void)<br \/>\n{<br \/>\nFIL myFile; \/\/ Filehandler<br \/>\nuint8_t write_ok=0, prt_ok=0;<\/p>\n<p>SystemInit(); \/\/ Quarz Einstellungen aktivieren<\/p>\n<p>\/\/ Init der LEDs<br \/>\nUB_Led_Init();<\/p>\n<p>\/\/ init vom UART<br \/>\nUB_Uart_Init();<\/p>\n<p>UB_Uart_SendString(COM3,\u201dStart USB\u201d,CRLF);<\/p>\n<p>\/\/ Init vom USB-OTG-Port als MSC-HOST<br \/>\n\/\/ (zum lesen\/schreiben auf einen USB-Stick)<br \/>\nUB_USB_MSC_HOST_Init();<\/p>\n<p>while(write_ok==0)<br \/>\n{<br \/>\n\/\/ pollen vom USB-Status<br \/>\nif(UB_USB_MSC_HOST_Do()==USB_MSC_DEV_CONNECTED) {<br \/>\n\/\/ wenn USB-Stick erkannt wurde<br \/>\nUB_Led_On(LED_GREEN);<br \/>\nUB_Uart_SendString(COM3,\u201dUSB-Stick erkannt\u201d,CRLF);<\/p>\n<p>\/\/ wenn File noch nicht geschrieben wurde<br \/>\nif(write_ok==0) {<br \/>\nwrite_ok=1;<br \/>\nUB_Led_On(LED_RED);<br \/>\n\/\/ Media mounten<br \/>\nif(UB_Fatfs_Mount(USB_0)==FATFS_OK) {<br \/>\n\/\/ File zum schreiben im root neu anlegen<br \/>\nif(UB_Fatfs_OpenFile(&amp;myFile, \u201cUSB_File.txt\u201d, F_WR_NEW)==FATFS_OK) {<br \/>\n\/\/ ein paar Textzeilen in das File schreiben<br \/>\nUB_Fatfs_WriteString(&amp;myFile,\u201dTest der WriteString-Funktion\u201d);<br \/>\nUB_Fatfs_WriteString(&amp;myFile,\u201dhier Zeile zwei\u201d);<br \/>\nUB_Fatfs_WriteString(&amp;myFile,\u201dENDE\u201d);<br \/>\n\/\/ File schliessen<br \/>\nUB_Fatfs_CloseFile(&amp;myFile);<br \/>\n}<br \/>\n\/\/ Media unmounten<br \/>\nUB_Fatfs_UnMount(USB_0);<br \/>\n}<br \/>\nUB_Led_Off(LED_RED);<br \/>\nUB_Uart_SendString(COM3,\u201dUSB-Stick geschrieben\u201d,CRLF);<br \/>\n}<br \/>\n}<br \/>\nelse {<br \/>\n\/\/ wenn kein USB-Stick vorhanden Text nur eimal ausgeben<br \/>\nUB_Led_Off(LED_GREEN);<br \/>\nif (prt_ok==0) {<br \/>\nUB_Uart_SendString(COM3,\u201dKein USB-Stick\u201d,CRLF);<br \/>\nprt_ok=1;<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<p>UB_Uart_SendString(COM3,\u201dStart Temperatur Messung\u201d,CRLF);<\/p>\n<p>\/\/ init vom DS1822<br \/>\ncheck=UB_DS18XX_Init();<\/p>\n<p>if(check==ERROR) {<br \/>\nUB_Uart_SendString(COM3,\u201dSensor Init error\u201d,CRLF);<br \/>\n}<\/p>\n<p>UB_Led_On(LED_GREEN);<\/p>\n<p>\/\/ Aufl\u00f6sung der Sensoren setzen<br \/>\ncheck=UB_DS1822B20_SetResolution(\u201c28FF6E12631402EE\u201d,11); \/\/ Sensor 1<br \/>\ncheck=UB_DS1822B20_SetResolution(\u201c28FF7415631402A9\u2033,11); \/\/ Sensor 2<br \/>\ncheck=UB_DS1822B20_SetResolution(\u201c28FF825B63140266\u2033,11); \/\/ Sensor 3<\/p>\n<p>if(check==ERROR) {<br \/>\nUB_Uart_SendString(COM3,\u201dError set Resolution\u201d,CRLF);<br \/>\n}<\/p>\n<p>while(1)<br \/>\n{<br \/>\nif(check==SUCCESS) {<br \/>\nUB_Led_On(LED_GREEN);<br \/>\n\/\/ kleine Pause<br \/>\nDelay(5000000);<br \/>\nUB_Led_Off(LED_GREEN);<br \/>\nUB_Led_On(LED_ORANGE);<br \/>\n\/\/ Temperatur vom DS1822 auslesen<br \/>\n\/\/temp=UB_DS1822B20_ReadTemp(\u201c220E6D33000000BB\u201d);<br \/>\ntemp1=UB_DS1822B20_ReadTemp(\u201c28FF6E12631402EE\u201d); \/\/Sensor 1<br \/>\nUB_Led_Off(LED_ORANGE);<br \/>\nUB_Led_On(LED_RED);<br \/>\ntemp2=UB_DS1822B20_ReadTemp(\u201c28FF7415631402A9\u2033); \/\/Sensor 2<br \/>\nUB_Led_Off(LED_RED);<br \/>\nUB_Led_On(LED_BLUE);<br \/>\ntemp3=UB_DS1822B20_ReadTemp(\u201c28FF825B63140266\u2033); \/\/Sensor 3<br \/>\nUB_Led_Off(LED_BLUE);<br \/>\nUB_Led_On(LED_GREEN);<br \/>\n\/\/ in String umwandeln<br \/>\nUB_DS18XX_TempToStr(temp1,temp_buf);<br \/>\n\/\/ per UART senden<br \/>\nUB_Uart_SendString(COM3,temp_buf,NONE);<br \/>\n\/\/ Leerzeichen<br \/>\nUB_Uart_SendByte(COM3, 32);<br \/>\n\/\/ in String umwandeln<br \/>\nUB_DS18XX_TempToStr(temp2,temp_buf);<br \/>\n\/\/ per UART senden<br \/>\nUB_Uart_SendString(COM3,temp_buf,NONE);<br \/>\n\/\/ Leerzeichen<br \/>\nUB_Uart_SendByte(COM3, 32);<br \/>\n\/\/ in String umwandeln<br \/>\nUB_DS18XX_TempToStr(temp3,temp_buf);<br \/>\n\/\/ per UART senden<br \/>\nUB_Uart_SendString(COM3,temp_buf,CRLF);<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2924\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-2924\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">1. M\u00e4rz 2015 um 14:06<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ein Timer wird bei der USB-Library nicht benutzt. Aber das gepostete Programm kann m.M. nach so nicht funktionieren. Wenn kein USB-Stick gesteckt ist. d\u00fcrfte die \u201cwhile(write_ok==0)\u201d niemals verlassen werden und das Programm kann nicht zur stelle mit dem TempSensor kommen. Egal wie\u2026Fehlersuche musst du schon selber machen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2939\" class=\"comment odd alt depth-3\">\n<div id=\"comment-2939\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/3f22c0b566eccf59bc076b4cb83f760b?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">dynahenry<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. M\u00e4rz 2015 um 22:34<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke f\u00fcr die Antwort.<br \/>\nDas ist richtig. Der USB-Stick steckt zu Anfang. Die 2 Zeilen werden auf den Stick geschrieben.<br \/>\nDie Messung ist dann falsch.<br \/>\nZiehe ich den USB-Stick danach ab, dann sind die Messungen ok.<br \/>\nIrgentwie st\u00f6rt der USB-Stick die 1-Draht-Messung wenn er steckt.<br \/>\nDas Progr\u00e4mmchen sollte nur zum Test dienen, ob die Beispiele zusammen funktionieren. Das ist leider nicht der Fall.<br \/>\nDie n\u00e4chste Stufe ist, die Messwerte auf den Stick zu schreiben.<br \/>\nDas Ganze m\u00f6chte ich dann mit der RTC kombinieren, um z.B. alle 60 Sekunden Me\u00dfwerte auf den Stick zu schreiben.<br \/>\nEben ein Temperatur-Logger.<br \/>\nWenn er fertig ist, k\u00f6nnten Andere vielleicht interessiert sein.<br \/>\nHat jemand anderes eine Idee?<br \/>\nGru\u00df<br \/>\nHeinrich<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2943\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-2943\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/a1409b1fe6254bc7fbdcfa48b73a1ee9?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">7. M\u00e4rz 2015 um 09:58<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Moin Heinrich,<br \/>\nich habe letztes Jahr mit Uwes libs sowas in der Art zusammen geschustert\u2026 <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><br \/>\nAllerdings auf dem 429 Disc.<br \/>\n<code><br \/>\n\/\/--------------------------------------------------------------<br \/>\n\/\/ File     : main.c<br \/>\n\/\/ Datum    : 08.11.2013<br \/>\n\/\/ Version  : 1.0<br \/>\n\/\/ Autor    : UB<br \/>\n\/\/ EMail    : mc-4u(@)t-online.de<br \/>\n\/\/ Web      : <a href=\"http:\/\/www.mikrocontroller-4u.de\/\" rel=\"nofollow\">http:\/\/www.mikrocontroller-4u.de<\/a><br \/>\n\/\/ CPU      : STM32F429<br \/>\n\/\/ IDE      : CooCox CoIDE 1.7.4<br \/>\n\/\/ GCC      : 4.7 2012q4<br \/>\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE<br \/>\n\/\/ Funktion : Demo der USB-MSC-Host-Library<br \/>\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen<br \/>\n\/\/              \"cmsis_boot\/stm32f4xx.h\"<br \/>\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"<br \/>\n\/\/ In Configuration diese Define hinzuf\u00fcgen :<br \/>\n\/\/ \"STM32F429_439xx\" , \"__ASSEMBLY__\" , \"USE_STDPERIPH_DRIVER\"<br \/>\n\/\/--------------------------------------------------------------<\/code><\/p>\n<p>#include &#8222;main.h&#8220;<br \/>\n#include &#8222;stm32_ub_led.h&#8220;<br \/>\n#include &#8222;stm32_ub_usb_msc_host.h&#8220;<br \/>\n#include &#8222;stm32_ub_ds18xx.h&#8220;<br \/>\n#include &#8222;stm32_ub_lcd_ili9341.h&#8220;<br \/>\n#include &#8222;stm32_ub_font.h&#8220;<br \/>\n#include &#8222;stm32_ub_rtc.h&#8220;<br \/>\n#include<br \/>\n#include<\/p>\n<p>void Delay(volatile uint32_t nCount) {<br \/>\nwhile(nCount&#8211;) {<br \/>\n}<br \/>\n}<\/p>\n<p>int main(void)<br \/>\n{<br \/>\nFIL myFile; \/\/ Filehandler<br \/>\nfloat temp;<br \/>\nErrorStatus check;<br \/>\nchar buf[40];<br \/>\nchar logstring[60];<\/p>\n<p>RTC_STATUS_t rtccheck;<br \/>\nuint8_t old_sek=0, readnow=1;<br \/>\nuint32_t sectik=0, nextread=60;<br \/>\nchar time_str[10];<br \/>\nchar date_str[10];<br \/>\nchar romc[8];<br \/>\nchar file_str[20];<br \/>\nchar firstds[8];<br \/>\nchar secondds[8];<\/p>\n<p>SystemInit(); \/\/ Quarz Einstellungen aktivieren<\/p>\n<p>\/\/ Init vom LCD<br \/>\nUB_LCD_Init();<br \/>\n\/\/ Init der Layer<br \/>\nUB_LCD_LayerInit_Fullscreen();<br \/>\n\/\/ auf Hintergrund schalten<br \/>\nUB_LCD_SetLayer_1();<br \/>\n\/\/ Hintergrund komplett mit einer Farbe f\u00fcllen<br \/>\nUB_LCD_FillLayer(RGB_COL_WHITE);<br \/>\n\/\/ auf Vordergrund schalten<br \/>\nUB_LCD_SetLayer_2();<br \/>\n\/\/ Vordergrund komplett mit einer Farbe f\u00fcllen<br \/>\nUB_LCD_FillLayer(RGB_COL_WHITE);<\/p>\n<p>\/\/ Init der LEDs<br \/>\nUB_Led_Init();<\/p>\n<p>\/\/ Init und start der RTC<br \/>\nrtccheck=UB_RTC_Init();<\/p>\n<p>\/*<br \/>\nUB_RTC.std=20;<br \/>\nUB_RTC.min=11;<br \/>\nUB_RTC.sek=0;<br \/>\nUB_RTC.tag=14;<br \/>\nUB_RTC.monat=6;<br \/>\nUB_RTC.jahr=14;<br \/>\nUB_RTC.wotag=6;<br \/>\nUB_RTC_SetClock(RTC_DEC);<br \/>\n*\/<\/p>\n<p>\/\/ Init vom USB-OTG-Port als MSC-HOST<br \/>\n\/\/ (zum lesen\/schreiben auf einen USB-Stick)<br \/>\nUB_USB_MSC_HOST_Init();<\/p>\n<p>while(1)<br \/>\n{<br \/>\nUB_RTC_GetClock(RTC_DEC);<br \/>\nif(UB_RTC.sek!=old_sek) {<br \/>\n\/\/ wenn eine Sekunde um ist<br \/>\nold_sek=UB_RTC.sek;<br \/>\nsectik++;<\/p>\n<p>if (sectik &gt; nextread){<br \/>\nreadnow=1;<br \/>\nnextread=sectik+3;<br \/>\n}<\/p>\n<p>old_sek=UB_RTC.sek;<br \/>\nsprintf(time_str,&#8220;%02d:%02d:%02d&#8220;,UB_RTC.std, UB_RTC.min, UB_RTC.sek);<br \/>\nsprintf(date_str,&#8220;%02d.%02d.%02d;&#8220;,UB_RTC.tag, UB_RTC.monat, UB_RTC.jahr);<br \/>\nsprintf(file_str,&#8220;%02d-%02d-%02d.log&#8220;,UB_RTC.tag, UB_RTC.monat, UB_RTC.jahr);<\/p>\n<p>UB_Font_DrawString(10,10,time_str,&amp;Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE);<br \/>\nUB_Font_DrawString(10,50,date_str,&amp;Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE);<br \/>\n}<\/p>\n<p>check=UB_DS18XX_Init();<br \/>\nUB_OneWire_ReadRomCode();<br \/>\nUB_OneWire_RomCode2Str(firstds);<br \/>\nDelay(500);<\/p>\n<p>UB_OneWire_ReadRomCode();<br \/>\nUB_OneWire_RomCode2Str(secondds);<\/p>\n<p>if(UB_USB_MSC_HOST_Do()==USB_MSC_DEV_CONNECTED) {<br \/>\nif(check==SUCCESS &amp;&amp; readnow==1) {<br \/>\nreadnow=0;<br \/>\nDelay(50);<br \/>\ntemp=UB_DS1822B20_ReadTemp(firstds);<br \/>\nUB_DS18XX_TempToStr(temp,logstring);<br \/>\nUB_Font_DrawString(50,150,logstring,&amp;Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE);<\/p>\n<p>temp=UB_DS1822B20_ReadTemp(secondds);<br \/>\nUB_DS18XX_TempToStr(temp,buf);<br \/>\nstrcat(logstring,&#8220;;&#8220;);<br \/>\nstrcat(logstring,buf);<br \/>\nstrcat(logstring,&#8220;;&#8220;);<br \/>\nUB_Font_DrawString(50,200,buf,&amp;Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE);<br \/>\nUB_Led_On(LED_GREEN);<br \/>\nUB_Led_On(LED_RED);<\/p>\n<p>strcat(logstring,date_str);<br \/>\nstrcat(logstring,time_str);<\/p>\n<p>if(UB_Fatfs_Mount(USB_0)==FATFS_OK) {<br \/>\nUB_Led_Off(LED_GREEN);<br \/>\n\/\/ File zum schreiben im root anf\u00fcgen<br \/>\nif(UB_Fatfs_OpenFile(&amp;myFile, file_str, F_WR_NEW)==FATFS_OK) {<br \/>\nUB_Fatfs_WriteString(&amp;myFile,logstring);<br \/>\nUB_Fatfs_CloseFile(&amp;myFile);<br \/>\n}<br \/>\nUB_Fatfs_UnMount(USB_0);<\/p>\n<p>}<br \/>\nUB_Led_Off(LED_RED);<\/p>\n<p>}<\/p>\n<p>}<br \/>\n}<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2944\" class=\"comment odd alt depth-2\">\n<div id=\"comment-2944\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/3f22c0b566eccf59bc076b4cb83f760b?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">dynahenry<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">7. M\u00e4rz 2015 um 11:51<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke J\u00f6rg,<br \/>\nIch werd es mal ausprobieren.<br \/>\nBei mir auf dem STM32F407 vertragen sich die DS18xx und die USB Libraries nicht sobald der USB Stick steckt. Am Timer TIM7 liegt es nicht.<\/p>\n<p>In der Zwischenzeit habe ich die Libray aus dieser Quelle verwendet.<br \/>\n<a href=\"http:\/\/stm32f4-discovery.com\/2014\/05\/13-reading-temperature-with-dallas-ds18b20-on-stm32f429-discovery-board\/\" rel=\"nofollow\">http:\/\/stm32f4-discovery.com\/2014\/05\/13-reading-temperature-with-dallas-ds18b20-on-stm32f429-discovery-board\/<\/a><br \/>\nDamit bleibt die Temperaturmessung richtig und ich kann Daten auf den Stick schreiben. Nun fehlt mir nur noch die RTC. Da mu\u00df ich mir den Quarz besorgen.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-3077\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-3077\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/90eee562b20a8c68a45ecd1d66a4994a?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Jozsef Schubert<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. April 2015 um 12:43<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hello J\u00f6rg,<\/p>\n<p>I read your article about STM32F4 and DS18xx. I is very interesting form me. Thank you.<br \/>\nBut I am a beginner STM32F user. So I downloded your example project and translate it with Coocox. But I do not know which pins are used. Olease can you dend me a circuit about DS18xx using.<\/p>\n<p>I forward your answer.<\/p>\n<p>Best regards,<\/p>\n<p>SJ<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-3082\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-3082\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. April 2015 um 09:22<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>check out the used \u201cone_wire_library\u201d <a href=\"index9c29.html?page_id=2506\" rel=\"nofollow\">http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=2506<\/a> the gpio is \u201cPD3\u2033 and you need an external 4k7 resistor to 3,3V.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Mit dieser Library k\u00f6nnen die OneWire Temperatur Sensoren vom Typ DS1822, DS1820, DS18B20, DS18S20 an den STM32F4 angeschlossen werden. Die Sensoren haben einen Temperatur Bereich von -55\u00b0C bis +125\u00b0C. Die Aufl\u00f6sung liegt verschieden (je nach Typ) zwischen 0.0625\u00b0C und 0.5\u00b0C &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=458\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":63,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[210,209,211,212,9,208,7],"class_list":["post-458","page","type-page","status-publish","hentry","category-stm32f4","tag-ds1820","tag-ds1822","tag-ds18b20","tag-ds18s20","tag-library","tag-one-wire","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=458"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/458\/revisions"}],"predecessor-version":[{"id":1602,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/458\/revisions\/1602"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}