Комментарии 28
Прошу задавать вопросы, чтобы знать что нужно освещать в следующих статьях
Где купить плату STM32 Nucleo-F411RE за 10 баксов?
примерно за 10 -12$ из европы, плюс доставка. www.digikey.com или www.futureelectronics.com
В www.futureelectronics.com доставка от 58 баксов. Итого примерно 70 баксов.
В www.digikey.com плата стоит 16 + от 4 доставка итого 20 баксов.
В www.digikey.com плата стоит 16 + от 4 доставка итого 20 баксов.
, а в чем то упускают Российский рынок, и не контролируют цены на свой продукт у официальных поставщиков, которые сильно завысили цену (предполагалось что платформа будет стоить 11$ но в России ее можно приобрести только от 750 рублей + стоимость доставки, что в два раза выше рекомендуемой цены).
Лично я брал на микроконтроллере STM32F401RE6 здесь, обошлось мне это на тот момент в Сумму: 1330.27 RUR. Доставка из Москвы в Ростов-на-Дону обошлась не дешево, почти в пол цены самой платы, которая сейчас там стоит 837.53 руб. (я брал за 800руб, цена постоянно пляшет от маленькой к высокой).
1300 руб это существенно больше 10 баксов. Моя жадность пожалуй возьмет верх над интересом к новому микроконтроллеру (
насчет доставки, в ту коробку что мне запихали мою платку можно было запихать 4 таких, Вы из какого города? может у вас есть единомышленники? Или тогда ждите пока я буду себе еще заказывать (если не найду нормального способа параллельно запустить 2 или более цикла в теле одной программы)
Roon_Boh, ну может вариант, который выбрали мы? FreeRTOS, в качестве распараллеливателя…
Да я на mbed.org что то уже читал, как вариант для не ресурсоемких процедур можно и попробовать. Я в общем то слабо то понимаю что это потому что читал на Английском, а его я знаю очень плохо.
-> качаем FreeRTOS с сайта
-> Мы использовали дорогущий IAR
-> указали в проекте «General Options->C/C++ compiler->Preprocessor»:
$PROJ_DIR$\Src\FreeRTOS\include
$PROJ_DIR$\Src\FreeRTOS\portable\IAR\LPC24xx
-> В проект добавили:
— heap_1.с
— list.c
— port.c
— queue.c
— tasks.c
— portasm.s79
-> В main.c:
#include «FreeRTOS.h»
#include «task.h»
xTaskHandle taskProcess_1, taskProcess_2;
#define PROCESS_1_PRIORITY 1
#define PROCESS_2_PRIORITY 2
// — void thread_Process_1(void* pParameters)
{
portTickType TickCounter = xTaskGetTickCount();
while (1)
{
// your code here
//
// 10 ms
vTaskDelayUntil(&TickCounter, 10/portTICK_RATE_MS);
}
}
// — // — void thread_Process_2(void* pParameters)
{
portTickType TickCounter = xTaskGetTickCount();
while (1)
{
// your code here
//
// раз в сек
vTaskDelayUntil(&TickCounter, 1000/portTICK_RATE_MS);
}
}
// — // тут точка входа
__arm __root void main()
{
__disable_interrupt();
// тут настройка ног // пропустили
__enable_interrupt();
if ( // stack
(xTaskCreate(thread_Process_1, «Process_1», 1000, NULL, PROCESS_1_PRIORITY, &taskProcess_1) != pdPASS)
|| (xTaskCreate(thread_Process_2, «Process_2», 500, NULL, PROCESS_2_PRIORITY, &taskProcess_2) != pdPASS)
)
{
// пипец — не запустили, все что требовалось
};
vTaskStartScheduler();
}
Как то так…
-> Мы использовали дорогущий IAR
-> указали в проекте «General Options->C/C++ compiler->Preprocessor»:
$PROJ_DIR$\Src\FreeRTOS\include
$PROJ_DIR$\Src\FreeRTOS\portable\IAR\LPC24xx
-> В проект добавили:
— heap_1.с
— list.c
— port.c
— queue.c
— tasks.c
— portasm.s79
-> В main.c:
#include «FreeRTOS.h»
#include «task.h»
xTaskHandle taskProcess_1, taskProcess_2;
#define PROCESS_1_PRIORITY 1
#define PROCESS_2_PRIORITY 2
// — void thread_Process_1(void* pParameters)
{
portTickType TickCounter = xTaskGetTickCount();
while (1)
{
// your code here
//
// 10 ms
vTaskDelayUntil(&TickCounter, 10/portTICK_RATE_MS);
}
}
// — // — void thread_Process_2(void* pParameters)
{
portTickType TickCounter = xTaskGetTickCount();
while (1)
{
// your code here
//
// раз в сек
vTaskDelayUntil(&TickCounter, 1000/portTICK_RATE_MS);
}
}
// — // тут точка входа
__arm __root void main()
{
__disable_interrupt();
// тут настройка ног // пропустили
__enable_interrupt();
if ( // stack
(xTaskCreate(thread_Process_1, «Process_1», 1000, NULL, PROCESS_1_PRIORITY, &taskProcess_1) != pdPASS)
|| (xTaskCreate(thread_Process_2, «Process_2», 500, NULL, PROCESS_2_PRIORITY, &taskProcess_2) != pdPASS)
)
{
// пипец — не запустили, все что требовалось
};
vTaskStartScheduler();
}
Как то так…
Я сам не против еще парочку прикупить. Постоянно пишу в офис с просьбами, завтра буду говорить с представителем руководства, может как то получиться уговорить на доставку почтой России обычной бандеролью
В Украине я заказывал через ТОВ «ОЗКО». доставка 2х плат вышла примерно 6 уе
При заказе выше 100 уе у них доставка бесплатна.
а вообще очень интересные платки. Но в mbed я столкнулся с трудностями компиляции примеров — иногда непонятно почему не компилируется тот или иной проект и какие библиотеки нужно подключать и почему.
Может где-то есть там manual на использование и на синтаксис языка, но что-то я не могу найти.
При заказе выше 100 уе у них доставка бесплатна.
а вообще очень интересные платки. Но в mbed я столкнулся с трудностями компиляции примеров — иногда непонятно почему не компилируется тот или иной проект и какие библиотеки нужно подключать и почему.
Может где-то есть там manual на использование и на синтаксис языка, но что-то я не могу найти.
Дайте мне ссылку с вашим вопросом на Mbed. Я постараюсь вам помочь. Если конечно у вас вопрос не о лимите в 20Kb.
На счет Украины, я бы с радостью, тем более что мониторинг цен показал резкий спад цен та подобную электронику, но только после первопроходцев, боюсь как бы посылка не потерялась.
На счет Украины, я бы с радостью, тем более что мониторинг цен показал резкий спад цен та подобную электронику, но только после первопроходцев, боюсь как бы посылка не потерялась.
да и синтаксис там обычный C++ ничего особо сложного, но опять таки не стоит забывать что прошивать через «сменный носитель» не стоит большие проекты, встроенный виртуальный ком сделан как раз для возможности отладки. Сделайте ваш код разговорчивым, и посмотрите на каком этапе происходит ошибки.
Автор, распишите для «чайников» преимущества плат данного производителя, в сравнении с другими подобными платами( таблица сравнения), и как эталон Arduino (эталон, пусть и другое семейство микроконтроллеров, но он у всех на слуху и в магазин идут именно за ним, чтобы поиграться периферией).
Понятно, что там другой микроконтроллер, но относительно своих DYI, что может дать?
А так же примеры использования с экранчиком, количеством двигателей и другим обвесом\платами расширения. Поддержка языков программирования списком.
Вы освещаете конкретного производителя и платы, почему именно они( кроме доступности, цены и легкости вхождения в STM32)?
Сочтите эти вопросы, как от «чайника».
Спасибо!
Понятно, что там другой микроконтроллер, но относительно своих DYI, что может дать?
А так же примеры использования с экранчиком, количеством двигателей и другим обвесом\платами расширения. Поддержка языков программирования списком.
Вы освещаете конкретного производителя и платы, почему именно они( кроме доступности, цены и легкости вхождения в STM32)?
Сочтите эти вопросы, как от «чайника».
Спасибо!
Мысль конечно хорошая, но я не профи, сам чайник.
Это пробная статья, посмотреть на сколько интересна эта тематика. Вижу что интересная ведь кто то же 8 раз плюсанул (2 раза минусанули наверное здешние гуру и из за неполного обзора всей линейуи). Освещаю только эту платформу.
Примеров игр с дисплеем и прочей периферией полно, и пишут ребята побольше моего соображающие в деталях.
Если и буду писать примеры по периферии то только мини проекты для сборки на коленке.
Почему я выбрал именно эту платформу на этом микроконтроллере?
По тому что эта платформа поддерживает онлайн компилятор mbed, там уже все настроено, и есть все библиотеки, настраивать входы выходы не нужно. Онлайн библиотеки имеют абстракционный уровень позволяющий нам легко взять готовый код для Arduino и скомпилировать его на STM32.
вот пример готового кода
Так же у нас есть абстрактные имена выводов микро контролера, такие как например D1 как и в ARDUINO, что позволяет просто вставить код.
От чего я выбрал 32 битный а не 8 битный микроконтролер?
— Потому что хочу идти от простого к сложному, и этот микро контролер нам дает возможность по началу не заморачиваться и не перегружаться информацией.
Почему именно производитель ST?
— Потому что много примеров по STM32.
Почему еменно STM32F4?
— Потому что это уже Cortex-M4 а не M3 как в младших сериях таких как: STM32F0, STM32F1, STM32F3, STM32L.
Почему именно эту платформу?
— Потому что для нее подойдет все то же что и для DISCOVERY серии, но самое главное это mbed.org, который дает мне возможность начать сразу программировать и не лезть туда куда я не знаю и мне не скоро понадобиться.
Почему именно эту модель Nucleo а не другую? Да просто гигантизм меня мучает и я хочу именно F4.
Собственно я не пиарюсь, не представляю никакой магазин или группу разработчиков. Я просто нашел на мой взгляд хорошую для себя платформу и делюсь своей радостью.
Это пробная статья, посмотреть на сколько интересна эта тематика. Вижу что интересная ведь кто то же 8 раз плюсанул (2 раза минусанули наверное здешние гуру и из за неполного обзора всей линейуи). Освещаю только эту платформу.
Примеров игр с дисплеем и прочей периферией полно, и пишут ребята побольше моего соображающие в деталях.
Если и буду писать примеры по периферии то только мини проекты для сборки на коленке.
Почему я выбрал именно эту платформу на этом микроконтроллере?
По тому что эта платформа поддерживает онлайн компилятор mbed, там уже все настроено, и есть все библиотеки, настраивать входы выходы не нужно. Онлайн библиотеки имеют абстракционный уровень позволяющий нам легко взять готовый код для Arduino и скомпилировать его на STM32.
вот пример готового кода
#include "mbed.h" //
DigitalOut myled(LED1); // Тут мы определяем что мы будем использовать цифровой вывод
// и дадим этому объекту имя myled
// LED1 ввод/вывод микроконтроллера на котором по умолчанию на плате живет пользовательский светодиод,
int main() {
while(1) {
myled = 1; // LED ВКЛ
wait(0.2); // ждем 200 миллисекунд.
myled = 0; // LED ВЫКЛ
wait(1.0); // ждем 1 сек
}
}
Так же у нас есть абстрактные имена выводов микро контролера, такие как например D1 как и в ARDUINO, что позволяет просто вставить код.
От чего я выбрал 32 битный а не 8 битный микроконтролер?
— Потому что хочу идти от простого к сложному, и этот микро контролер нам дает возможность по началу не заморачиваться и не перегружаться информацией.
Почему именно производитель ST?
— Потому что много примеров по STM32.
Почему еменно STM32F4?
— Потому что это уже Cortex-M4 а не M3 как в младших сериях таких как: STM32F0, STM32F1, STM32F3, STM32L.
Почему именно эту платформу?
— Потому что для нее подойдет все то же что и для DISCOVERY серии, но самое главное это mbed.org, который дает мне возможность начать сразу программировать и не лезть туда куда я не знаю и мне не скоро понадобиться.
Почему именно эту модель Nucleo а не другую? Да просто гигантизм меня мучает и я хочу именно F4.
Собственно я не пиарюсь, не представляю никакой магазин или группу разработчиков. Я просто нашел на мой взгляд хорошую для себя платформу и делюсь своей радостью.
Да это не самый лучший обзор, но он на порядок лучше существующих, и при должном желании просто немного помогает, и немного объясняет пару вопросов возникающих при покупке.
Конечно же я уже почти доперевел Руководство пользователя, которое очень хорошо дает представление о платформе, но сначала я напишу так называемый быстрый старт, в котором мы воспользуемся некоторыми отличительными чертами этой платформы, такими как: прошивка с помощью виртуального носителя информации (бинарник кидаем как на флешку сразу на платку по USB), Встроенный Виртуальный COM порт., после чего поставим будильник и закончим статью.
Конечно же я уже почти доперевел Руководство пользователя, которое очень хорошо дает представление о платформе, но сначала я напишу так называемый быстрый старт, в котором мы воспользуемся некоторыми отличительными чертами этой платформы, такими как: прошивка с помощью виртуального носителя информации (бинарник кидаем как на флешку сразу на платку по USB), Встроенный Виртуальный COM порт., после чего поставим будильник и закончим статью.
До этого занимался stm32f1, потом перешёл на f4. Вскоре понял, что макетка и всякие провода не вариант, нужны шилды бутерброды, посмотрел в сторону Arduino. Обилие всякой «нависной» фигни зашкаливает, arduino ide тоже для новичка самый раз. Так бы и остался на Arduino, но когда начал делать более серьёзные проекты, нету второго uart, один i2c. Можно было попробовать arduino с cortex. Но решил попробовать mbed, почти все библиотеки портированы c arduino. Всё в облаке, и шилды от arduino можно цеплять
Мне тоже понравился этот ресурс, у вас какая плата? Как вы думаете осилю ли портирование в Mbed Discovery?
Спасибо, за обзор! Тоже решился на покупку Nucleo, вырос из 8 -16 bit контроллеров. Думаю было бы не плохо, еще про платы расширения для Nucleo краткий обзор сделать. И доступных сред разработки.
del
Спасибо за статью, самый ясный и простой пример. За одно и с мбед познакомился. Но у меня вот такое получается (с края потому что координаты 0.0 задал, смотрел что изменится. И цвет не синий, а красный :(. Выводит всё инверсно.) :
С экраном что то, драйвер устарел, китайцы версии гонят.. Если координаты и ориентацыю по разному по менять, полоски убераются, фон красный, но старая надпись уберается как то через раз. Экран 240*320.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE