Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

DS18b20 STM32

Непрочитано 22.11.2016, 01:03  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию DS18b20 STM32

Обновление!
Если на проводе висит один датчик, используем упрощенную функцию.
Декларируем интерфейс и объект:
Код:
One_Wire_StructTypeDef OneWire;
Код:
DS1822_single_TypeDef Single_DS1822;
Сюда будем записывать ошибки работы, если требуется:
Код:
One_Wire_ErrorTypeDef OneWireError;
Теперь в теле процедуры определяем интерфейс:
Код:
	OneWire.Delay_Func = delay_us;
	OneWire.GPIO_Pin = GPIOB;
	OneWire.PIN = GPIO_Pin_8;
Подключаем датчик к интерфейсу:
Код:
Single_DS1822.One_Wire_Bus = &OneWire;
Запускаем конвертирование:
Код:
OneWireError = DS1822_Start_Conversion_Skip_Rom(&Single_DS1822);
Ждем конца процедуры:
Код:
delay_ms(800);
Забираем результат:
Код:
OneWireError = DS1822_Read_Skip_Rom(&Single_DS1822);
Код:
float T = Single_DS1822.Temp;
Не забываем создать файлик gpio.h с одной лишь строчкой:
Код:
#include "stm32f10x.h"
Таким образом, мы говорим, что работаем с stm32. Так же можно и stm8, avr, pic и что угодно еще подключить, если дефайном перенаправить GPIO_TypeDef;
Теперь работа с цепочкой датчиков:
Код:
DS1822_TypeDef DS1822_SR[5];
Мы зарезервировали в памяти 5 датчиков.
Сюда функция вернет количество найденных датчиков:
Код:
unsigned char DevF;
Код:
OneWireError = DS1822_Search_Rom(DS1822_SR, &OneWire, &DevF);
Здесь важно понимать, что все датчики должны висеть на одном интерфейсе, который пропишется в каждый датчик после выполнения поиска. Поэтому мы указываем этот интерфейс в качестве параметра. Это нужно, чтобы работать с разными цепочками датчиков, подключенных к разным интерфейсам без путаницы.
Программируем разрешение каждого датчика:
Код:
DS1822_SR[0].Resolution = Res_10bit;
Код:
OneWireError = DS1822_Configure(&DS1822_SR[0]);
Запускаем конвертирование первого найденного датчика:
Код:
OneWireError = DS1822_Start_Conversion(&DS1822_SR[0]);
Функция помогает рассчитать время конвертирования:
Код:
delay_ms(DS1822_GetConversionDelayValue(&DS1822_SR[0]));
Забираем результат:
Код:
DS1822_Get_Conversion_Result(&DS1822_SR[0]);
Конвертируем результат с учетом выбранного ранее разрешения:
Код:
T = DS1822_ConvertTemp(&DS1822_SR[0]);
Как видите, мы можем собирать произвольные цепочки датчиков на разных линиях ввода-вывода микроконтроллера и даже не тратить лишнее время на конвертирование с условием, что разрешение датчиков у нас может отличаться.
Уж не знаю, чем вас еще теперь удивить-то?
Ну разве что напомню, что у каждого датчика появится серийный номер, который можно будет найти тут:
Код:
DS1822_SR[0].SN[8]
Вложения:
Тип файла: zip DS1822.zip (4.8 Кб, 0 просмотров)
Реклама:

Последний раз редактировалось Easyrider83; 24.11.2016 в 19:58.
Easyrider83 вне форума  
Эти 3 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
Alex9797 (22.11.2016), miwutka (24.11.2016), Straner (24.11.2016)
Непрочитано 22.11.2016, 12:56  
Straner
Частый гость
 
Регистрация: 31.10.2009
Сообщений: 18
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Straner на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Похоже произошла избирательная чистка. Потерялись вопросы.

Easyrider83 Скажите немного о "delay_us", теперь ее в библиотеке не будет?
Straner вне форума  
Непрочитано 22.11.2016, 13:04  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от Straner Посмотреть сообщение
Easyrider83 Скажите немного о "delay_us", теперь ее в библиотеке не будет?
Ей там не место. Вообще и GPIO там тоже не место и вероятнее всего все железо-зависимое я вынесу за пределы кода. Оно должно работать одинаково как на PIC, AVR, STM, так и на ардуино и Rapberi Pi.
Будет прослойка в виде GPIO.h файла, где будет просто ссылка на ресурс, где GPIO будет определен. А задержку вынесем наружу, чтобы проще было подключать ее в RTOS.
Easyrider83 вне форума  
Непрочитано 22.11.2016, 20:13  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: DS18b20 STM32

Сообщение от Easyrider83 Посмотреть сообщение
Видите, все очень легко и просто.
Сообщение от Easyrider83 Посмотреть сообщение
Оно должно работать одинаково как на PIC, AVR, STM, так и на ардуино и Rapberi Pi.
"Ардуинокал дэтэктэд!"(с). Надо ещё прилепить классы и замесить на С++, для придания важного вида.

Сообщение от Straner Посмотреть сообщение
Потерялись вопросы.
"Потерялась потеряшка. Прошу вернуть вознаграждение."(с)
Сообщение от Straner Посмотреть сообщение
Easyrider83 Скажите немного о "delay_us", теперь ее в библиотеке не будет?
Да по хорошему, её вообще не должно быть, ни в каком виде.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
dosikus (24.11.2016)
Непрочитано 22.11.2016, 20:54  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: DS18b20 STM32

Сообщение от STM32F0 Посмотреть сообщение
Если вас раздражает чей-то чрезмерный ум, задумайтесь о своей чрезмерной глупости. (С)
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
Alex9797 (22.11.2016)
Непрочитано 24.11.2016, 20:18  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: DS18b20 STM32

Сообщение от Easyrider83 Посмотреть сообщение
Ждем
Код:
delay_ms(800);
........................
Миниатюры:
Нажмите на изображение для увеличения
Название: 1472612553_11eab6c2c9d1ab38f66fc8f5991e137b.jpg
Просмотров: 0
Размер:	19.7 Кб
ID:	105698  
STM32F0 вне форума  
Непрочитано 24.11.2016, 20:34  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: DS18b20 STM32

Easyrider83, Паша, это даже не аурдунья. Выкинь все и не позорься ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 24.11.2016, 20:43  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: DS18b20 STM32

dosikus, каждый имеет право на лево, "Не стреляйте в пианиста..." Он полезное дело делает. И если кому-то что-то не нравится, есть его никто не неволит.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 24.11.2016, 20:44  
Straner
Частый гость
 
Регистрация: 31.10.2009
Сообщений: 18
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Straner на пути к лучшему
По умолчанию Re: DS18b20 STM32

STM32F0
О, похоже вы дока в задержках. Подскажите пожалуйста правильный и работающий код задержки на пару микросекунд для F103. И как его проверить при помощи лог. анализатора.
Straner вне форума  
Непрочитано 24.11.2016, 20:54  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: DS18b20 STM32

Сообщение от dosikus Посмотреть сообщение
Easyrider83, Паша, это даже не аурдунья. Выкинь все и не позорься ...
Это совершенство! Вы просто еще не поняли
Easyrider83 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6171 20.05.2025 20:16
Подключение DS18b20 к STM32 aftaev ARM 85 22.11.2016 10:58
DS18b20, много anapogo Микроконтроллеры, АЦП, память и т.д 70 20.03.2015 13:56
Драйвер (не VCP) для встроенного USB STM32 vvv998 ARM 106 08.11.2014 21:36
ATmega8 и DS18B20, не определяется датчик butman Микроконтроллеры, АЦП, память и т.д 21 09.06.2007 22:05


Часовой пояс GMT +4, время: 19:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.