A cut-down version of https://os.mbed.com/users/Sissors/code/DS1820/ tweaked for use with the STM32F103. It is all generic Mbed operations though, so should be usable anywhere. Non-essential functions have been removed, as this is intended for use within a tutorial.

Dependencies:   LinkedList

Dependents:   STM32F103C8T6_DS18B20 stm32f103c8t6-ds18b20

Fork of DS1820 by Erik -

Revision:
12:196e9e54b033
Parent:
11:1a3c3002b50c
Child:
14:c591209285e9
--- a/DS1820.cpp	Mon Feb 16 16:53:11 2015 +0000
+++ b/DS1820.cpp	Thu Feb 26 22:20:24 2015 +0000
@@ -117,9 +117,10 @@
         } else {
             ROM_bit_index=1;
             descrepancy_marker=0;
+            char command_shift = command;
             for (int n=0; n<8; n++) {           // Search ROM command or Search Alarm command
-                onewire_bit_out(pin, command & 0x01);
-                command = command >> 1; // now the next bit is in the least sig bit position.
+                onewire_bit_out(pin, command_shift & 0x01);
+                command_shift = command_shift >> 1; // now the next bit is in the least sig bit position.
             } 
             byte_counter = 0;
             bit_mask = 0x01;