I am using a Dallas DS18B20 thermometer that communicates with Maxim's one wire protocol. I'm having issues at the initialization sequence. I have pulled the line high for 500 uSeconds, pulled the line low for 510 uSeconds (the reset), pulled high for 45 uSeconds, waited for 120 uSeconds for the thermometer to pull the line low as a response (the presence pulse), and then sampled the signal to make sure it was low. If it is not low, something went wrong. When I look at the signal in my 'scope, I see it get pulled down for 510 uSeconds and the pulled up for 680 uSeconds. This means the thermometer did not respond at all (45 + 120 + 500 = 675 uSeconds). What am I doing wrong?
If the STM32F4 is pulling high, then you can't expect the DS18B20 to be able to pull low. You should bring your output high for a short time (a couple of microseconds would do), and then tri-state it. The pullup resistor will then hold it high until the DS18B20 pulls it low (the STM32F4 may have an internal pullup). As it is, you probably have contention on that net, which may eventually destroy one or the other.
Note that in that article that you linked to that he is using a 3.9kohm resistor as a pullup. Also note that he is tri-stating the line by making it an input (which would be necessary anyway in order to read it).
Make sure that you have configured the port in open-drain mode and pulled up. If it have been push pull mode, then you may have damaged the part, much better to experiment with a new one.
If I remember right, that waiting period to test the presence may be variable. You can miss it by just looking after a fixed time. I had implemented the code by testing at every 10 uS in a total 300 uS loop.