LSMOD
Сб 19 января 2019 г. 15:30
Примечание модератора: перенесено от «генерала» в ядро STM
Сегодня у меня есть время, чтобы продолжить с моими вещами STM32.
Вот почему я не терплю результатов чего -то делать.
Я не мог ответить в последней ветке ViewTopic.PHP?F = 45&T = 4301&начало = 50#p52463 Потому что теперь он заблокирован !
Это странный форум!
Мой соответствующий столб поток остался без ответа ViewTopic.PHP?F = 45&T = 4301&начало = 50#p52402.
Так что не будет решения проблемы потока ...
В настоящее время я стараюсь следовать советам по будущему использованию Arduino с этим ядром https: // github.com/stm32duino/arduino_core_stm32.
Так что это будет тема этой ветки, и я надеюсь, что она тоже не будет заблокирована!
Все остальные подходы к развитию питаются для меня до много времени.
Например, я не могу понять, почему есть только сложные примеры для LiboPencM3, показывающие дисплеи точечной матрицы, но когда я хочу использовать глупый стандартный ЖК-дисплей 16x2, я должен сначала преобразовать или написать свою собственную библиотеку.
Или опубликованный пример https: // Средний.com/coinmonks/juggling-s ... F6820DC808, которые используют усложняют многозадачность для простых показаний датчиков.
На мой взгляд, это действительно особые случаи - я вижу стандартный случай для µC, занимающегося линейными вещами, такими как чтение датчика и подталкивание данных к интерфейсу или среде данных.
Вот почему я хочу легкий доступ к библиотекам для использования ЖК-дисплея или написания с FAT в SD-карту.
Когда я захочу сделать действительно сложные вещи, я буду использовать Orange -Pi, работающий Linux за 15 долларов или за 25 долларов с 64 -битной машиной для четырех ядра - тогда мне больше не нужен настольный компьютер.
Так что мне не нужно думать или освоить многозадачность - это уже идеально с Linux!
Так я думаю об использовании оборудования ...
Это правильное место на форуме, чтобы обсудить это «ядро arduino» https: // github.com/stm32duino/arduino_core_stm32 ?
Сегодня у меня есть время, чтобы продолжить с моими вещами STM32.
Вот почему я не терплю результатов чего -то делать.
Я не мог ответить в последней ветке ViewTopic.PHP?F = 45&T = 4301&начало = 50#p52463 Потому что теперь он заблокирован !
Это странный форум!
Мой соответствующий столб поток остался без ответа ViewTopic.PHP?F = 45&T = 4301&начало = 50#p52402.
Так что не будет решения проблемы потока ...
В настоящее время я стараюсь следовать советам по будущему использованию Arduino с этим ядром https: // github.com/stm32duino/arduino_core_stm32.
Так что это будет тема этой ветки, и я надеюсь, что она тоже не будет заблокирована!
Все остальные подходы к развитию питаются для меня до много времени.
Например, я не могу понять, почему есть только сложные примеры для LiboPencM3, показывающие дисплеи точечной матрицы, но когда я хочу использовать глупый стандартный ЖК-дисплей 16x2, я должен сначала преобразовать или написать свою собственную библиотеку.
Или опубликованный пример https: // Средний.com/coinmonks/juggling-s ... F6820DC808, которые используют усложняют многозадачность для простых показаний датчиков.
На мой взгляд, это действительно особые случаи - я вижу стандартный случай для µC, занимающегося линейными вещами, такими как чтение датчика и подталкивание данных к интерфейсу или среде данных.
Вот почему я хочу легкий доступ к библиотекам для использования ЖК-дисплея или написания с FAT в SD-карту.
Когда я захочу сделать действительно сложные вещи, я буду использовать Orange -Pi, работающий Linux за 15 долларов или за 25 долларов с 64 -битной машиной для четырех ядра - тогда мне больше не нужен настольный компьютер.
Так что мне не нужно думать или освоить многозадачность - это уже идеально с Linux!
Так я думаю об использовании оборудования ...
Это правильное место на форуме, чтобы обсудить это «ядро arduino» https: // github.com/stm32duino/arduino_core_stm32 ?
LSMOD
Сб 19 января 2019 г. 16:11
Установка работает как описано в https: // github.com/stm32duino/wiki/wiki/.
(Это установит 896,2 МБ материал.)
Отлично. Попробую снова мои первые шаги с новым ядром:
Скомпилируйте мой ЖК-пример ViewTopic.PHP?F = 28&T = 4500#P52248 работает только после комментирования
(Это установит 896,2 МБ материал.)
Отлично. Попробую снова мои первые шаги с новым ядром:
Скомпилируйте мой ЖК-пример ViewTopic.PHP?F = 28&T = 4500#P52248 работает только после комментирования
enableDebugPorts();
LSMOD
Сб 19 января 2019 г., 16:30
Кроме - вручную Прошивка программы Blink с 10576 байтами тоже работает.
Теперь вернемся к вопросу об использовании USB и получении 8 -битного доступа к порту GPIO ...
Сначала посмотрите на 8 -битный GPIO.
Подсказка Mrburnette https: // github.com/rust-embed/discov ... RS/RTRM.доктор медицинских наук не показывает ответа,
Итак, я искал определения Hal GPIO и нашел этот хороший документ https: // simonmartin.CH/ресурсы/STM32/ ... эртос).PDF,
Но, кажется, не описывает правильный HAL.
Итак, я попробовал этот пример с большим успехом https: // www.Микроконтроллер-проект.компонент ... Оллер.HTML
Я подключил 4 синих светодиода с PB4 - PB7 с более 470 Ом до +5 В.
Затем я собрал и вспыхнул этот источник Arduino:
Теперь вернемся к вопросу об использовании USB и получении 8 -битного доступа к порту GPIO ...
Сначала посмотрите на 8 -битный GPIO.
Подсказка Mrburnette https: // github.com/rust-embed/discov ... RS/RTRM.доктор медицинских наук не показывает ответа,
Итак, я искал определения Hal GPIO и нашел этот хороший документ https: // simonmartin.CH/ресурсы/STM32/ ... эртос).PDF,
Но, кажется, не описывает правильный HAL.
Итак, я попробовал этот пример с большим успехом https: // www.Микроконтроллер-проект.компонент ... Оллер.HTML
Я подключил 4 синих светодиода с PB4 - PB7 с более 470 Ом до +5 В.
Затем я собрал и вспыхнул этот источник Arduino:
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, GPIO_PIN_RESET);
/*Configure GPIO pins : Pin1_Pin Pin2_Pin */
GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
void setup() {
MX_GPIO_Init();
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
#define WAIT 250
GPIOB->ODR = ~0x0010; //Write to port-b
HAL_Delay(WAIT);
GPIOB->ODR = ~0x0020; //Write to port-b
HAL_Delay(WAIT);
GPIOB->ODR = ~0x0040; //Write to port-b
HAL_Delay(WAIT);
GPIOB->ODR = ~0x0080; //Write to port-b
HAL_Delay(WAIT);
GPIOB->ODR = ~0x0000; //Write to port-b
HAL_Delay(WAIT);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
LSMOD
Сб 19 января 2019 г. 18:44
В ../arduino15/packages/stm32/hardware/stm32/1.4.0/ядер/arduino/stm32/PINAF_STM32F1.час Я нашел
static inline void pinF1_DisconnectDebug(PinName pin)
{
/** Enable this flag gives the possibility to use debug pins without any risk
* to lose traces
*/
#ifndef STM32F1_LOCK_DEBUG
// Enable AFIO clock
__HAL_RCC_AFIO_CLK_ENABLE();
// Disconnect JTAG-DP + SW-DP signals.
// Warning: Need to reconnect under reset
if ((pin == PA_13) || (pin == PA_14)) {
__HAL_AFIO_REMAP_SWJ_DISABLE(); // JTAG-DP Disabled and SW-DP Disabled
}
if ((pin == PA_15) || (pin == PB_3) || (pin == PB_4)) {
__HAL_AFIO_REMAP_SWJ_NOJTAG(); // JTAG-DP Disabled and SW-DP enabled
}
#else
UNUSED(pin);
#endif /* STM32F1_FORCE_DEBUG */
}
LSMOD
Сб 19 января 2019 г., 19:14
До сих пор я не вижу возможности использовать интерфейс USB в качестве серийного USB.
Ни один из них не работает
Ни один из них не работает
//#include
#include
USBCompositeSerial CompositeSerial;
uint32_t counter = 0;
void setup()
{
CompositeSerial.registerComponent();
USBComposite.begin();
delay(2000);
}
void loop()
{
CompositeSerial.print("Counter: ");
CompositeSerial.print(counter);
CompositeSerial.println(" - Hello World!");
counter++;
delay(500);
}
Беннебой
Сб 19 января 2019 г. 11:48
Для CDC вам нужно будет получить версию GitHub Dev, 1.40 релизов не включает его.
Mrburnette
Солнце 20 января 2019 2:45
[Беннебой - Сб 19 января 2019 г. 21:48] - Для CDC вам нужно будет получить версию GitHub Dev, 1.40 релизов не включает его.
Комментарии Рэя:
Как отмечают многие участники, я высказываюсь о том, чтобы сделать переход от Roger's (Leaflab's Bandored Core Core) к официальному ядру STM32. Это мое долгосрочное предложение... Но я понимаю, что это не будет безболезненным для пользователей Blue Pill или Maple Mini, поскольку текущая (19-01-2019) Master Git Branch не хватает серьезного кода серийного USB.
IMO, официальное ядро будет работать лучше всего с официальным оборудованием SBC: Discovery Boards или Nucleo Boards. Официальное ядро также лучше всего работает с инструментом ST-Link. Очевидно, те участники, которые только в синих таблетках за 2 доллара не будут счастливы. Извините, вы некоторое время жили в заимствованном времени... Недавно были сообщения о Синие таблетки с надежным UC (10K SRAM, 32K Flash) ... Поэтому я подозреваю, что избыток (Suplus) STM32F103C8T6 высыхает.
Вернувшись много лет назад в Arduino.Форум CC, я проповедовал о покупке одного (1) Официального совета: Uno, Nano и т. Д. Наличие этого официального совета помогает диагностировать потенциальные вопросы клонов H/W. Возможность самопроверка вашего кода на своем официальном совете имеет решающее значение для продолжения психического здоровья. То же самое относится и к Arduino на ядре STM... Один официальный совет критически важен в качестве тестовой платформы. Развернуть на дешевом аппаратном обеспечении клонов, если хотите, но купите открытие или доску Nucleo - вы будете рады, что сделали... Это инвестиция, как хороший DVM.
Луча
LSMOD
Солнце 20 января 2019 г. 9:16
[Беннебой - Сб 19 января 2019 г. 21:48] - Для CDC вам нужно будет получить версию GitHub Dev, 1.40 релизов не включает его.Спасибо за совет - но как мне это получить?
У меня есть проблема, которую следует путать с массой различных решений, зависит от разных ядер и MCU / досок.
Конечно, нет проблем с этим познакомиться, когда вы работаете с этими вещами каждый день или после многих лет.
Но когда у вас есть какой -то опыт и меньше времени, действительно трудно понять, что вы пишете или что вы имеете в виду.
Итак, сначала я должен был Google, что такое значение CDC ...
[Mrburnette - Солнце 20 января 2019 г. 2:45] - ... В текущем (19-01-2019) в главной ветви GIT отсутствует какой-то серьезный код серийного USB.До сих пор неясно, что включено в ядро, для какого типа MCU ?
IMO, официальное ядро будет работать лучше всего с официальным оборудованием SBC: Discovery Boards или Nucleo Boards.
Официальное ядро также лучше всего работает с инструментом ST-Link.
Очевидно, те участники, которые только в синих таблетках за 2 доллара не будут счастливы.
Вернувшись много лет назад в Arduino.Форум CC, я проповедовал о покупке одного (1) Официального совета: Uno, Nano и т. Д.
Доска Nucleo, кажется, продается с разными MCU:
Совет по обнаружению -> STM32F407VG
Правление на немолео -> STM32F030R8 или STM32F103RB https: // www.ул.com/en/ecosystems/stm32- ... tid = sc2003
Таким образом, когда поддерживаются доски Nucleo и STM32F103RB на этих платах, я не понимаю, почему STM32F103C8T6 не поддерживается?
Я владелец ST-Link, но до сих пор не работал с этим, потому что я делаю основные тесты.
Я хочу знать, можно ли использовать UART - так почему я не должен мигать над этим?
Еще одно новое оборудование вызовет новые проблемы - тогда мое терпение будет подчеркнуто.
С другой стороны, вы видели, что я на пути к решению проблемы с серийной загрузкой.
Да, всегда хорошая идея, чтобы купить вещи в хорошем качеством.
Но есть действительно большая разница в цене, и поэтому приемлемо купить прямой 3 вместо 1 - поэтому, когда оборудование подозревается, я просто меняю его.
Кроме того - доски из ядров большие и не такие удобные.
Беннебой
Солнце 20 января 2019 г. 10:07
Беннебой
Солнце 20 января 2019 г. 10:44
[Mrburnette - Солнце 20 января 2019 г. 2:45] - Но я понимаю, что это не будет безболезненным для пользователей Blue Pill или Maple Mini, поскольку текущая (19-01-2019) Master Git Branch не хватает серьезного кода серийного USB.CDC находится в базовой версии GitHub около недели назад. Таким образом, он хорошо движется, Фредерик размышляет о том, как лучше всего включить загрузку DFU, и есть PR, которые делают это возможным - просто случай, когда решает, какой загрузчик будет лучшим... Есть очень широкая гамма досок & Arm Cores для покрытия, так что, возможно, это начнется с уже доступных, то есть BL2 & Скрытый...
[Mrburnette - Солнце 20 января 2019 г. 2:45] - Как отмечают многие участники, я высказываюсь о том, чтобы сделать переход от Roger's (Leaflab's Bandored Core Core) к официальному ядру STM32.Я думаю, что это хорошая позиция, чем больше людей переходят на это ядро, тем больше становится снежный ком, и чем быстрее темпы развития через участников.
Для F4 это очень приятно сейчас с сильной базой периферийной поддержки - в основном основной поддержкой основного Arduino, но открыта для разработки с других с более экзотическими вариантами использования и желанием выставить более способное оборудование. Было бы здорово получить здесь некоторых завсегдатаев, на поездке, есть невероятный талант, который можно принести, и учитывая, что это LL & Хэл, я думаю, не невозможно дышать жизнью в некоторые великие функциональные возможности.
В настоящее время я продолжаю свое учебное путешествие, чтобы прыгнуть от Tinkerer, создающего проекты, которые работают по сути, к тому, кто может помочь перемещать ядро, медленный, но приятный процесс.
LSMOD
Солнце 20 января 2019 12:20
[Беннебой - Солнце 20 января 2019 г. 10:44] - CDC находится в базовой версии GitHub около недели назад.Тогда эта функция совершенно новая!
Неудивительно, что он не работает, когда он находится только в пути разработки.
Была глупая ошибка конфигурации для последовательной загрузки.
Это должно быть /dev/ttyusb0 а нет /dev/ttys0.
Итак, эта функция Работаю правильно с /dev /ttyusb0.
STMFLASH32 может быть более новой версией в репозитории.
UART1 как сериал работает в коде.
Но я не мог найти обходной путь для активации PB4 в качестве порта GPIO.
Я понятия не имею, какая функция должна быть вызвана для деактивации jtrst ?
Есть ли что -нибудь, чтобы работать с RTClock?
#включать <Rtclock.час> не снимается, и я не нахожу файл с RTClock в подпапке STM32 ...
Есть описание с названием некоторых примеров:
* https: // www.ул.com/content/ccc/resource ... 025071.PDF
* https: // www.ул.com/content/ccc/resource ... 207941.PDF
Есть ли место, где можно загрузить примеры?
Я мог найти ../.arduino15/packages/stm32/ardware/stm32/1.4.0/system/drivers/stm32f1xx_hal_driver/src/STM32F1XX_HAL_RTC.в
Беннебой
Солнце 20 января 2019 г. 13:28
Библиотека RTC
https: // github.com/stm32duino/stm32rtc
Что вы пытаетесь сделать с PB4? Это GPIO по умолчанию на STM Core для Bluepill.
SPI по умолчанию для Bluepill на STM Core - PA7 Mosi, PA6 Miso, PA5 SCLK (написал это, поскольку PB4 - альтернативный PIN -код для мисо)
https: // github.com/stm32duino/stm32rtc
Что вы пытаетесь сделать с PB4? Это GPIO по умолчанию на STM Core для Bluepill.
SPI по умолчанию для Bluepill на STM Core - PA7 Mosi, PA6 Miso, PA5 SCLK (написал это, поскольку PB4 - альтернативный PIN -код для мисо)
LSMOD
Солнце 20 января 2019 г. 13:45
[Беннебой - Солнце 20 января 2019 г. 13:28] - https: // github.com/stm32duino/stm32rtcСпасибо - я постараюсь сделать пример для использования RTC.
Что вы пытаетесь сделать с PB4? Это GPIO по умолчанию на STM Core для Bluepill.
Я упоминаю прямой доступ к порту ViewTopic.PHP?F = 48&T = 4521#P52582
Он работает, кроме PB4.
Но теперь у меня есть обходной путь, когда я делаю явный Pinmode раньше - тогда он работает.
void setup() {
pinMode(PB4, OUTPUT);
MX_GPIO_Init();
pinMode(LED_BUILTIN, OUTPUT);
}
Беннебой
Солнце 20 января 2019 г. 13:48
Приятно знать.
Возможно, посмотрите на обработку Pinmode в ядре, чтобы точно увидеть, что он делает - может быть меньше накладных расходов.
Возможно, посмотрите на обработку Pinmode в ядре, чтобы точно увидеть, что он делает - может быть меньше накладных расходов.
LSMOD
Солнце 20 января 2019 г. 13:53
[Беннебой - Солнце 20 января 2019 г. 13:28] - https: // github.com/stm32duino/stm32rtcПозже я буду познакомиться
RTC_Tests:15:22: error: STM32RTC.h: No such file or directory
#include
^
compilation terminated.
exit status 1
STM32RTC.h: No such file or directory
Беннебой
Солнце 20 января 2019 г. 14:18
Вам нужно скачать эту библиотеку и поместить ее в папку библиотеки пользователей...
LSMOD
Солнце 20 января 2019 г., 17:27
[Беннебой - Солнце 20 января 2019 г. 14:18] - Вам нужно скачать эту библиотеку и поместить ее в папку библиотеки пользователей...Да - большое спасибо!
Примеры добавляются в дерево и составлены без проблем.
Zoomx
Пн 21 января 2019 г. 13:56
[Mrburnette - Солнце 20 января 2019 г. 2:45] - Вернувшись много лет назад в Arduino.Форум CC, я проповедовал о покупке одного (1) Официального совета: Uno, Nano и т. Д. Наличие этого официального совета помогает диагностировать потенциальные вопросы клонов H/W.Иногда наличие клона помогает диагностировать официальную проблему совета директоров.
16U2, установленный как USB-сериал-адаптер, есть проблема, когда вы открываете COM-порт с ПК без сброса UNO: в зависимости от бода на ПК вы получаете персонаж, который не отправляется Atmega328.
Использование 128000 символ - F0
Использование 256000 символ - ноль
Использование 38400 - это FF
Используя 9600, вы не получаете никакого персонажа.
Это связано с небольшим импульсом, который интерпретируется как действительный символ.
CH340x, который используется на клонах, не имеет этой проблемы, поэтому я смог взглянуть на 16U2. С другой стороны, клоны иногда имеют проблемы с электричеством из -за LDO.
Если вы используете загрузчик Hoodloader, проблема не присутствует.
fpistm
Пн 21 января 2019 г., 19:27
[LSMOD - Сб 19 января 2019 г. 16:11] - (Это установит 896,2 МБ материал.)Право, когда вы устанавливаете инструмент инструментов ARM GCC, а также ARM CMSIS. 395M ARM-None-Eabi-GCC/
262 м CMSIS/
[LSMOD - Сб 19 января 2019 г. 16:11] -
Скомпилируйте мой ЖК-пример ViewTopic.PHP?F = 28&T = 4500#P52248 работает только после комментирования
enableDebugPorts();
LSMOD
Вторник 22 января 2019 г. 9:31
[fpistm - Пн 21 января 2019 г., 19:27] - Право, когда вы устанавливаете инструмент инструментов ARM GCC, а также ARM CMSIS.Не было возможности отличаться в менеджере совета директоров.
395M ARM-None-Eabi-GCC/
262 м CMSIS/
Ядро Mapel, кажется, удаляется.
Я попробую версию разработки рядом с проверкой серийной USB -функции ...
[fpistm - Пн 21 января 2019 г., 19:27] -
enableDebugPorts();
Беннебой
Вт 22 января 2019 г. 10:18
[LSMOD - Вторник 22 января 2019 г. 9:31] - Проблема решается, но все еще не ясно, как правильное имя функции для этого ядра?Для этого нет никакой функции, порты отладки включены в качестве стандарта. Ядро Роджера отключает их как стандартное, чтобы люди не могли использовать их в качестве GPIO, это связано с тем, что в основном ядро Роджера используется на Maple Mini, Bluepill или Blackpill, где люди используют загрузчик, а не SWD.
fpistm
Вт 22 января 2019 г. 10:30
Первая цель этого ядра - быть наиболее близким к API ARDUINO.
Я стараюсь расширить/предоставить доступ, чтобы охватить наибольшее количество функций в стиле Arduino, чтобы быть максимально простым.
Теперь, CMSIS, HAL и LL полностью доступны, а продвинутый пользователь может выполнять свою собственную реализацию, чтобы использовать все возможности.
Менеджер советов работает так же для других ядров, вас не предупреждают о том, что установлено. Ридме.MD предоставляет эту информацию. В любом случае, он удаляет другие установленные ядра.
https: // github.com/stm32duino/arduino_c ... тронукция
О именовании функций, не пытайтесь сравнивать оба ядра, цель не одинакова для каждого ядра.
О доступе к 8 битам, у вас есть все подсказки, чтобы сделать это, поскольку вам уже удастся использовать доступ в регистр.
О RTC, да, есть гораздо больше вариантов. Как уже говорилось ранее, цель состоит в том, чтобы обеспечить простой и близкий API, чем Arduino. Еще некоторая необходимая функция для добавления (например: используйте резервное регистр для восстановления времени после сброса).
Я стараюсь расширить/предоставить доступ, чтобы охватить наибольшее количество функций в стиле Arduino, чтобы быть максимально простым.
Теперь, CMSIS, HAL и LL полностью доступны, а продвинутый пользователь может выполнять свою собственную реализацию, чтобы использовать все возможности.
Менеджер советов работает так же для других ядров, вас не предупреждают о том, что установлено. Ридме.MD предоставляет эту информацию. В любом случае, он удаляет другие установленные ядра.
https: // github.com/stm32duino/arduino_c ... тронукция
О именовании функций, не пытайтесь сравнивать оба ядра, цель не одинакова для каждого ядра.
О доступе к 8 битам, у вас есть все подсказки, чтобы сделать это, поскольку вам уже удастся использовать доступ в регистр.
О RTC, да, есть гораздо больше вариантов. Как уже говорилось ранее, цель состоит в том, чтобы обеспечить простой и близкий API, чем Arduino. Еще некоторая необходимая функция для добавления (например: используйте резервное регистр для восстановления времени после сброса).
configForLowPower(Source_Clock source)