Столкнулся с проблемой, не работает датчик при 2х проводной схеме, постоянно выдает 85. Подтяжка к 3,3В 2,2к.
3х проводная схема работает, с ней нет проблем.
Я вычитал что во время преобразования нужно порт перенастроить в пуш пулл, что бы обеспечить питание.
Собственно код. После подачи команды конвертации, настраиваю на пуш пулл, далее жду время, и далее перенастраиваем вывод обратно в режим опен драин.
Код: Выделить всё
DS18B20_writeByte(convert_t); //44
//out pp
GPIOA->MODER &= ~GPIO_MODER_MODER0;
GPIOA->MODER |= GPIO_MODER_MODER0_0;
GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0;
GPIOA->BSRR |= GPIO_BSRR_BS_0;
delay(delay_wait_convert);
//50MHz out open-drain
GPIOA->MODER &= ~GPIO_MODER_MODER0;
GPIOA->MODER |= GPIO_MODER_MODER0_0;
GPIOA->OTYPER |= GPIO_OTYPER_OT_0;
GPIOA->OSPEEDR |= GPIO_OSPEEDR_OSPEEDR0;
GPIOA->BSRR |= GPIO_BSRR_BS_0;
Правда это не помогает. В чем может быть проблема?