DHT11/22 LIB на STM32

Jackson009
Sun 30 августа 2015 г. 14:28
Кто -нибудь сделал, используя DHT11/22 Arduino Lib в STM32Duino?
Я стараюсь для нас в STM32, но кажется, что компилируется, но не работает.
Я перенесла свою работу, чтобы использовать в Arduino uno. Затем.. Размер кода более 32 КБ.
Спасибо.

Rogerclark
Солнце 30 августа 2015 г., 21:22
Пожалуйста, опубликуйте ссылку на библиотеку.

Из того, что я помню, у этого устройства есть пользовательский протокол связи, и я подозреваю, что, когда вы работаете на 108 МГц GD32, эта скорость может быть проблемой, я.e Вы идете слишком быстро.


Пса. Если вы используете GD32, я предполагаю, что вы прочитали другой поток..
У меня есть мой работает в OK в 120 МГц

Jackson009
Пн 31 августа 2015 г., 4:21
Привет, Роджер,
LIB от Adafruit/DHT Link:-

https: // github.com/adafruit/dht-sensor- ... тестер.Ино


Ну, я люблю скорость в GD32, но я не очень хорош в кодировании. Итак, я работаю в STM32F103C8T6 (Red Board).

Спасибо,

Rogerclark
Пн 31 августа 2015 г., 4:42
Я сомневаюсь, что либера.

Он использует функцию, которая не находится в ядре STM32 или GD32

называется

MicrosecondStoclockcycles


Я посмотрел в ядро ​​(SAM), и у него есть эти определения
#define clockCyclesPerMicrosecond() ( SystemCoreClock / 1000000L ) #define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (SystemCoreClock / 1000L) ) #define microsecondsToClockCycles(a) ( (a) * (SystemCoreClock / 1000000L) )

Nulldragon
Пт 18 сентября 2015 г. 13:20
Мне немного повезло получить библиотеку Adafruit DHT для компиляции (версия DHT_U), что, на мой взгляд, лучше

Пожалуйста, найдите библиотеку https: // github.com/nullydragon/adafruit_dht.

Примечание.
Строка 16 DHT.CPP имеет жестко закодированные MaxCycles на 72000L, что работает для моего Maple Mini (при 72 МГц, который должен быть где-то в поле 1-5 мс
Строка 15 прокомментирована, так как есть проблема типа (она также излишна со следующим изменением)
Строка 240 Portinpretregister проходит выход из DigitalPintoport (PIN) вместо того, чтобы установить его на проницательную линию.

Дайте мне знать, как это происходит.

Jackson009
Сб 26 сентября 2015 г. 14:26
Я попробую. Большое спасибо.

Rogerclark
Сб 26 сентября 2015 г. 14:56
Строка 16 DHT.CPP имеет жестко закодированные MaxCycles на 72000L, что работает для моего Maple Mini (при 72 МГц, который должен быть где-то в поле 1-5 мс Может быть лучше использовать f_cpu/1000 вместо 72000 в качестве часов процессора на некоторых платах быстрее E.G GD32 - 120 МГц, а на F4 частота тактовой частоты может составлять до 180 МГц, я думаю

Martinayotte
Сб 26 сентября 2015 г. 15:07
Rogerclark написал:На F4 частота тактовой частоты может составлять до 180 МГц, я думаю

Rogerclark
Сб 26 сентября 2015 г. 15:12
Привет, Мартин

Я думал, что был вариант 180 МГц. У меня есть только 168 МГц F4 Discovery Board, но я думал, что был более быстрый.

В любом случае, основная причина использования F_CPU заключается в том, что GD32F1 работает на расстоянии 96 МГц в стабильной операции или 120 МГц в разгоночных (без каких -либо проблем), но также некоторые люди хотят запустить STM32F103 на 48 МГц, чтобы сохранить власть.

Мне лично не нравятся жесткие произвольные значения, особенно те, которые являются производной часовой частоты.

Недавно я сделал множество прилив STM32F103 после того, как я поработал над сердечником GD32, чтобы попытаться удалить некоторые из тех же жестко -кодированных значений.
По -прежнему может быть несколько ссылок на 72000000 или 72 или 72000, но я думаю, что я заменил большинство из них на производные f_cpu ;-)

Nulldragon
Пн 12 октября 2015 г., 6:56 утра
Я обновил, чтобы использовать f_cpu, у меня еще не было возможности протестировать, хотя.

Букер
Чт 12 мая 2016 г. 13:54
Я новею Arduino STM32.
У меня есть какое -то сообщение об ошибке, когда я строю DHTTESTER.

----------------------------------------------------------------------------------------------------------------------------------------------------
C: \ users \ booker \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014Q1/bin/arm -none -eabi -g ++ -c -g -os -w -ddebug_level = debug_none -mmd -ffunction -section -section -fdata -section -nostdlib -param max -inline -insns -single = 500 - fno -rtti -fno -exception -dboard_generic_stm32f103c -dvect_tab_addr = 0x8000000 -derror_led_port = gpiob -derror_led_pin = 1 -mcpu = cortex -m3 -df_cpu = 72000000l -dard13 -dino Arduino_arch_stm32f1 -dconfig_maple_mini_no_disable_debug = 1 -deserial_usb -dgeneric_bootloader -dmcu_stm32f103c8 - mthumb -march = armv7 -m -d__stm32f1__ -dmcu_stm32f103c8 -mthumb -march = armv7 -m -d__stm32f1__ -ic: \ users \ document Booker \ Documents \ arduino \ harpware \ arduino_stm32 -master \ stm32f1 \ system/libmaple/include -ic: \ users \ booker \ documents \ arduino \ hardware \ arduino_stm32 -master \ stm32f1 \ system/libmaple/stm32f1/include -ic :ик: iac: inclod\ Users \ booker \ documents \ arduino \ arpware \ arduino_stm32-master \ stm32f1 \ system/libmaple/usb/stm32f1 -ic: \ users \ booker \ documents \ arduino \ hardware \ arduino_stm32-master \ stm32f1 \ system/libmaple/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/arduino_stm32 \ stm32f1 \ USB_LIB -IC: \ пользователи \ Booker \ Documents \ arduino \ halpware \ arduino_stm32 -master \ stm32f1 \ cores \ maple -ic: \ users \ booker \ documents \ arduino \ ardware \ arduino_stm32 -master \ stm32f1 \ variants \ generic_stm32f103c -master \ stm32f1 \ variants \ generic_stm32f103c -ико. \ Users \ booker \ documents \ arduino \ библиотеки \ dht-sensor-library-master r: \ temp \ build3874439298577829562.TMP \ dhttester.cpp -o r: \ temp \ build3874439298577829562.TMP \ dhttester.CPP.о
C: \ users \ booker \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014Q1/bin/arm -none -eabi -g ++ -c -g -os -w -ddebug_level = debug_none -mmd -ffunction -section -section -fdata -section -nostdlib -param max -inline -insns -single = 500 - fno -rtti -fno -exception -dboard_generic_stm32f103c -dvect_tab_addr = 0x8000000 -derror_led_port = gpiob -derror_led_pin = 1 -mcpu = cortex -m3 -df_cpu = 72000000l -dard13 -dino Arduino_arch_stm32f1 -dconfig_maple_mini_no_disable_debug = 1 -deserial_usb -dgeneric_bootloader -dmcu_stm32f103c8 - mthumb -march = armv7 -m -d__stm32f1__ -dmcu_stm32f103c8 -mthumb -march = armv7 -m -d__stm32f1__ -ic: \ users \ document Booker \ Documents \ arduino \ harpware \ arduino_stm32 -master \ stm32f1 \ system/libmaple/include -ic: \ users \ booker \ documents \ arduino \ hardware \ arduino_stm32 -master \ stm32f1 \ system/libmaple/stm32f1/include -ic :ик: iac: inclod\ Users \ booker \ documents \ arduino \ arpware \ arduino_stm32-master \ stm32f1 \ system/libmaple/usb/stm32f1 -ic: \ users \ booker \ documents \ arduino \ hardware \ arduino_stm32-master \ stm32f1 \ system/libmaple/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/usb/arduino_stm32 \ stm32f1 \ USB_LIB -IC: \ пользователи \ Booker \ Documents \ arduino \ halpware \ arduino_stm32 -master \ stm32f1 \ cores \ maple -ic: \ users \ booker \ documents \ arduino \ ardware \ arduino_stm32 -master \ stm32f1 \ variants \ generic_stm32f103c -master \ stm32f1 \ variants \ generic_stm32f103c -ико. \ Users \ booker \ documents \ arduino \ libraries \ dht-sensor-library-master -ic: \ users \ booker \ documents \ arduino \ library \ dht-sensor-library-master \ utility c: \ users \ booker \ documents \ Arduino \ Libraries \ dht-sensor-library-master \ dht.cpp -o r: \ temp \ build3874439298577829562.библиотека датчиков TMP \ dht \ dht.CPP.о
C: \ users \ booker \ documents \ arduino \ библиотеки \ dht-sensor-library-master \ dht.CPP: в конструкторе 'dht :: dht (uint8_t, uint8_t, uint8_t)':
C: \ users \ booker \ documents \ arduino \ библиотеки \ dht-sensor-library-master \ dht.CPP: 18: 46: Ошибка: «MicrosecondStoclockcycles» не был объявлен в этой области
_maxcycles = microsecondStoclockCycles (1000); // 1 миллисекунд тайм -аут для
^
Ошибка компиляции.
---------------------------------

Я не знаю, почему ? Я считаю, что библиотека включена https: // github.com/nullydragon/adafruit_dht.

Zoomx
Чт 12 мая 2016 г. 14:10
Кажется, что ошибка связана с платформой
https: // github.com/adafruit/dht-sensor- ... /проблемы/53
В последнем посте есть решение. Это было написано Роджером на первой странице этой ветки. Лучше прочитать это.

Rogerclark
Чт 12 мая 2016 г., 19:34
Теперь мы можем быть в состоянии добавить эти функции в ядро, так как я думаю, что мы определяем FCPU для всех процессоров.

Тем не менее, я не знаю, будет ли библиотека работать, даже если эта функция будет добавлена, потому что я не совсем уверен, как код сможет считать циклы процессоров.

РЖУ НЕ МОГУ.

Насколько я могу судить, эта функция используется только для отладки

Попробуйте просто прокомментировать эту строку.

Rogerclark
Чт 12 мая 2016 г., 8:21 вечера
Я только что добавил отсутствующую функцию и 2 другие связанные функции в F1 & F4 Ядра
#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) #define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (F_CPU / 1000L) ) #define microsecondsToClockCycles(a) ( (a) * (F_CPU / 1000000L) )

ZMEMW16
Солнце 15 мая 2016 г. 16:42
Только что проверил, что библиотека DHT22 работает из коробки с Baite Maple Mini

это заголовок DHT.CPP
/****************************************************************** DHT Temperature & Humidity Sensor library for Arduino. Features: - Support for DHT11 and DHT22/AM2302/RHT03 - Auto detect sensor model - Very low memory footprint - Very small code http://www.github.com/markruys/arduino-DHT Written by Mark Ruys, [email protected]. BSD license, check license.txt for more information. All text above must be included in any redistribution. Datasheets: - http://www.micro4you.com/files/sensor/DHT11.pdf - http://www.adafruit.com/datasheets/DHT22.pdf - http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Weather/RHT03.pdf - http://meteobox.tk/files/AM2302.pdf Changelog: 2013-06-10: Initial version 2013-06-12: Refactored code 2013-07-01: Add a resetTimer method ******************************************************************/

Озолив
Чт 20 октября 2016 г., 6:37
Привет,

Для моего DHT22 это либера http: // www.GitHub.com/markruys/arduino-dht давал только температуру, но влажность была далекой.

Мне нравится этот либера.

Проблема была в различном размере типа «слова» между AVR и ARM. Изменение его на явный тип "uint16_t" решил проблему.

Я связался с автором, который обновил его репо. Итак, текущая версия работает из коробки, спасибо всем !

Rogerclark
Чт 20 октября 2016 г., 7:08
Озолив написал:
Я связался с автором, который обновил его репо. Итак, текущая версия работает из коробки, спасибо всем !

И_ру
Чт 10 ноября 2016 г., 13:24
Привет!
У меня есть STM32F103C8T6 Blue Chineese Board и проткнула ее STM32DUINO.
Затем я скачал эту библиотеку Озолив написал:от Марка Руиса в http: // www.GitHub.com/markruys/arduino-dht

И_ру
Чт 10 ноября 2016 г., 18:13
Что -то пошло не так. Теперь плата мигает светодиодные 3 раза в секунду и рассматривается только как устройство «Mapple dfu», а не как последовательный порт :( любые идеи? Как загрузить любую программу через конвертер USB-UART?

Стивестронг
Чт 10 ноября 2016 г. 18:59
Если вы чего -то не знаете, всегда полезно читать вики.

Даниэфф
Чт 10 ноября 2016 г., 19:07
И_ру написал:Привет!
Я не мог использовать пин -номер "PC13", потому что это не uint_8 тип.

RFM69

Пидж