Помощь: «Pwmwrite» не была объявлена ​​в этой области

Брайан М
Чт 14 июня 2018 11:41
Я, наверное, что -то упускаю. Я адаптировал это из примера Fade Fade Arduino, и он работает, если я использую Analogwrite вместо pwmwrite.
PWMWrite станет оранжевым, как будто он распознается IDE, но он не может компилироваться с этой ошибкой «Pwmwrite» не был объявлен в этой области Любая помощь?
% ls -lR .: total 4 drwx------ 7 enif enif 4096 Nov 14 10:36 D1 ./D1: total 33164 -rw-r--r-- 1 enif enif 50 Sep 16 22:17 AppProperty.xml -rw-r--r-- 1 enif enif 872728 Sep 16 23:31 AppUtil.dll -rw-r--r-- 1 enif enif 481686 Sep 16 22:17 autobackup.ico -rw-r--r-- 1 enif enif 369432 Sep 16 23:30 autoDiagnose.dll -rw-r--r-- 1 enif enif 873240 Sep 16 23:30 autoDiagnoseUpdate.exe drwx------ 3 enif enif 4096 Nov 14 10:38 AutoUpdate -rw-r--r-- 1 enif enif 5789976 Sep 16 23:30 BaiduYunGuanjia.exe -rw-r--r-- 1 enif enif 2378520 Sep 16 23:31 Basement.dll -rw-r--r-- 1 enif enif 686360 Sep 16 23:30 BugReport.exe -rw-r--r-- 1 enif enif 1529624 Sep 16 23:29 Bull120U.dll -rw-r--r-- 1 enif enif 332056 Sep 16 23:31 channelpcsdk.dll drwx------ 2 enif enif 4096 Nov 14 10:31 D2 drwx------ 2 enif enif 4096 Nov 14 10:31 D3 -rw-r--r-- 1 enif enif 1120 Sep 16 22:17 DuiEngine license.txt -rw-r--r-- 1 enif enif 2084864 Sep 16 22:17 exiv2.dll -rw-r--r-- 1 enif enif 250648 Sep 16 23:30 FileUpload.exe -rw-r--r-- 1 enif enif 481686 Sep 16 22:17 guanjia_logo.ico -rw-r--r-- 1 enif enif 127768 Sep 16 23:29 HelpUtility.exe -rw-r--r-- 1 enif enif 4776728 Sep 16 23:32 kernel.dll -rw-r--r-- 1 enif enif 860952 Sep 16 23:32 kernelUpdate.exe -rw-r--r-- 1 enif enif 105472 Sep 16 22:17 libexpat.dll -rw-r--r-- 1 enif enif 455328 Sep 16 22:17 msvcp120.dll -rw-r--r-- 1 enif enif 970912 Sep 16 22:17 msvcr120.dll -rw-r--r-- 1 enif enif 186648 Sep 16 23:31 npYunWebDetect.dll -rw-r--r-- 1 enif enif 177152 Sep 16 23:32 resource.db drwx------ 2 enif enif 4096 Nov 14 10:31 skin drwx------ 2 enif enif 4096 Nov 14 10:31 sounds -rw-r--r-- 1 enif enif 1752752 Sep 16 23:29 uninst.exe -rw-r--r-- 1 enif enif 192 Sep 16 23:32 VersionInfo -rw-r--r-- 1 enif enif 192 Sep 16 23:32 VersionInfo2 -rw-r--r-- 1 enif enif 1263896 Sep 16 23:29 xImage.dll -rw-r--r-- 1 enif enif 991000 Sep 16 23:29 YunDb.dll -rw-r--r-- 1 enif enif 1005336 Sep 16 23:30 YunDetectService.exe -rw-r--r-- 1 enif enif 4456216 Sep 16 23:30 YunLogic.dll -rw-r--r-- 1 enif enif 258328 Sep 16 23:29 YunShellExt64.dll -rw-r--r-- 1 enif enif 218904 Sep 16 23:29 YunShellExt.dll -rw-r--r-- 1 enif enif 25214 Sep 16 22:17 YunTorrentFile.ico -rw-r--r-- 1 enif enif 90904 Sep 16 23:30 YunUtilityService.exe ./D1/AutoUpdate: total 2136 -rw-r--r-- 1 enif enif 2017560 Sep 16 23:32 Autoupdate.exe -rw-r--r-- 1 enif enif 153880 Sep 16 23:31 AutoUpdateUtil.dll -rw-r--r-- 1 enif enif 159 Sep 16 22:17 config.ini drwx------ 2 enif enif 4096 Nov 14 10:31 D4 -rw-r--r-- 1 enif enif 90 Sep 16 22:17 VersionInfo.xml ./D1/AutoUpdate/D4: total 1400 -rw-r--r-- 1 enif enif 455328 Sep 16 22:17 msvcp120.dll -rw-r--r-- 1 enif enif 970912 Sep 16 22:17 msvcr120.dll ./D1/D2: total 4668 -rw-r--r-- 1 enif enif 4776728 Sep 16 23:32 kernel.dll ./D1/D3: total 688 -rw-r--r-- 1 enif enif 672024 Nov 14 10:29 NsisInstallUI.dll -rw-r--r-- 1 enif enif 4608 Nov 14 10:29 nsProcessW.dll -rw-r--r-- 1 enif enif 75 Sep 16 22:17 SetupCfg.ini -rw-r--r-- 1 enif enif 11264 Nov 14 10:29 System.dll -rw-r--r-- 1 enif enif 90 Sep 16 22:17 VersionInfo.xml ./D1/skin: total 3628 -rw-r--r-- 1 enif enif 3176960 Sep 16 23:32 default.db -rw-r--r-- 1 enif enif 536070 Sep 16 23:25 duiengineskin.zip ./D1/sounds: total 672 -rw-r--r-- 1 enif enif 39336 Sep 16 22:17 1.wav -rw-r--r-- 1 enif enif 386844 Sep 16 22:17 2.wav -rw-r--r-- 1 enif enif 129596 Sep 16 22:17 3.wav -rw-r--r-- 1 enif enif 126764 Sep 16 22:17 4.wav

fpistm
Пт 15 июня 2018 г., 4:56 утра
STM Core не имеет pwmwrite. Для создания ШИМ вы должны использовать аналоговую запись, используя PIN -код с возможностями ШИМ.

Брайан М
Пт 15 июня 2018 г., 6:42
Это разница между уровнями поддержки Bluepill против других STM32s?
Я надеялся на простой элегантный способ манипулировать частотой ШИМ.
Поэтому я предполагаю, что решение будет отправлено на лист данных для прескалера и регистрации информации?

Спасибо за помощь.

Пито
Пт 15 июня 2018 г., 7:32 утра
Официальный STM32duino «Core» на основе библиотек "Libmaple":

https: // github.com/rogerclarkmelbourne/arduino_stm32

Поддерживает несколько чипов F10X и F40X, используемых с чертежами (и их клонами, вариантами), AFAIK.

Есть и другие «ядра», которые вы также можете рассмотреть, в основном на основе «STM32 HAL», например, ядро ​​«STM32GENERIER»:

https: // github.com/danieleff/stm32gener ... 2/варианты

или "или" arduino_core_stm32 "Core:

https: // github.com/stm32duino/arduino_core_stm32

Эдогальдо
Пт 15 июня 2018 г. 8:32
[Брайан М - Пт 15 июня 2018 г. 6:42] - Я надеялся на простой элегантный способ манипулировать частотой ШИМ.
Вы можете подумать об этом и предоставить свои предложения: эти ядра растут на основе взаимодействия с сообществом, и это особенно верно для ядра Libmaple.
Кстати: AFAIK Изменение частоты ШИМ не поддерживается также в стандартных ядрах Arduino..

Ура, e.

fpistm
Пт 15 июня 2018 г. 8:46 утра
Ядро STM открыт любой вклад приветствуются.
STM Core стремится быть (насколько это возможно) Arduino совместим.
Pwmwrite не является стандартным Arduino, в любом случае, мы расширяем API для поддержки дальнейшего API.
Планируется написать новую библиотеку таймеров, которая будет включать в себя этот KINF функции.

Брайан М
Пт 15 июня 2018 г., 8:11 вечера
[Пито - Пт 15 июня 2018 г. 7:32] - или "или" arduino_core_stm32 "Core:

https: // github.com/stm32duino/arduino_core_stm32
Я думал, что это то, что я использовал. Похоже, что это было обновлено до 1.3.0, но после установки Manager Boards по -прежнему показывает V 1.2.0. (1.2.0 папка пуста, хотя.) Выглядит так, будто может потребоваться переустановка? :рулон:
[Эдогальдо - Пт 15 июня 2018 г. 8:32] - Вы можете подумать об этом и предоставить свои предложения: эти ядра растут на основе взаимодействия с сообществом, и это особенно верно для ядра Libmaple.
Кстати: AFAIK Изменение частоты ШИМ не поддерживается также в стандартных ядрах arduino..

Ура, e.
С Uno и Nano я смог сделать это, изменив таймер и прекалеры регистров. Это, конечно, сделало такие вещи, как Millis и Micros работать быстрее, чем обычно. Я не думаю, что это хорошо задокументировано в стандартном Arduino, но регистры можно манипулировать непосредственно на Atmega328p. Не уверен насчет других MCUS.

Таблица DATASHITE NUCLEO и MCU кажутся гораздо менее ясными в отношении имен и местоположений регистрации, чем Atmel.

Я умеренно квалифицирован в программировании. Аппаратное обеспечение и базовая конфигурация намного более ошеломляет. Я понял, что даже не уверен, какова такая такта по умолчанию. Плата имеет кристалл для конфигурации с низкой мощностью, но паяные мосты не подключены.

Я копался и нашел кое -что в AppData. STM32F3XX_HAL_CONF заставляет меня думать, что происходит гораздо больше, чем я понимаю.

Я вроде как чувствую, что я лаю не ту трех здесь... Или, по крайней мере, есть гораздо более крутая кривая обучения, чем я ожидал от чего -то, используя Arduino IDE.

Пито
Сб 16 июня 2018 г., 7:57 утра
Я вроде как чувствую, что я лаю не ту трех здесь... Или, по крайней мере, есть гораздо более крутая кривая обучения, чем я ожидал от чего -то, используя Arduino IDE. Самая крутая кривая обучения, которую вы можете достичь, - это плата STM32F103XX (т.е. Maplemini, Bluepill или их клоны/варианты). Ядро, основанное на «Libmaple» (также известное как ядро ​​Роджера) является наиболее используемым и разработанным здесь (см. Выше список).

Ядра на основе HAL (те, которые вы используете), здесь меньше используются и меньше поддерживаются, даже ситуация становится лучше с каждым днем :)

Эдогальдо
SAT 16 июня 2018 г. 9:36 утра
@brian M: STM32 Устройства отличаются и, вероятно, более сложные, чем ARVS, поэтому, если вы хотите справиться с ними на границах упрощения, предлагаемых Arduino Framwork, вам приходится иметь дело с их учебным курсом и сложностью.
В любом случае, принципы одинаковы: вы взаимодействуете с устройствами (т. Е. Таймерами) через регистры и, в частности, для ШИМ, вы можете изменить частоту, играя с прекалерами и счетчиками основных таймеров.
Преимущество уважения к 328 заключается в том, что у вас есть выделенный таймер для миллитов и микросхемы, поэтому изменения в FWM FREQ не повлияют на расчеты времени.

Ура, e.

Брайан М
Сб, 16 июня 2018 г., 17:34
Я понимаю. Я помню, как начинал с Ардуино и думал, что это было бы так легко. Я быстро столкнулся с проблемами и попытался решить их с помощью Libraraies. Через некоторое время я выяснил, как найти регистры на 328. Больше контроля и большего понимания привело к лучшим результатам.

Я просматривал таблицу DataShing STM3F303 и не видел карты регистров. Я думаю, что в нем указано диапазон 1 кб для Timer1 (который кажется огромным), но нет конкретных регистров.

Мне нужно выяснить адрес памяти, верно? У него не будет удобного имени, как TCCRXX.

Я уверен, что просто смотрю во все неверные места для этой информации.

В любом случае, только что заказал синюю таблетку, чтобы я тоже мог учиться с этим.

Спасибо

Эдогальдо
SAT 16 июня 2018 г. 18:00
С STM32 у вас есть как минимум 2 источника информации: лист данных, который предоставляет базовую информацию и справочное руководство, которое предоставляет большую часть необходимых деталей.
Посмотрите на домашней странице вашего устройства для них, и вы найдете всю необходимую информацию

Цвета ST7735 TFT