Главная › Форумы › Программирование микроконтроллеров › Программирование МК STM32
Помечено: STM32
- В этой теме 168 ответов, 99 участников, последнее обновление 4 месяца, 3 недели назад сделано Sanekfps2024.
-
АвторСообщения
-
Март 7, 2021 в 8:54 пп #22326A-SoftУчастник
chechetkin.v.v@mail.ru
шлите схему, посмотрим что можно сделатьМарт 13, 2021 в 10:56 пп #22344sabratУчастникДобрый день. Захотелось ребёнку моему красивую подсветку. Выбрал ленту ws2812. Поскольку на этом сайте давно нахожусь, попробовал скомпилить готовые проекты с этого сайта. Всё работает, с одним НО. Почему то у меня работает половина -1 светодиод. То есть если #define LED_COUNT 300, то у меня работают только 149 светодиодов. У автора всё работает нормально. Лента у меня 60св. м. длинной 5 метров. То есть суммарно 300 светодиодов. При дефайне в проекте 300 работает 149 и какое бы число не ставил соблюдается эта закономерность — Половина минус 1. Если ставлю 601 то работают все.
Заранее благодарю.Июль 18, 2021 в 12:35 пп #22380DanУчастникДобрый день!
Пытаюсь настроить на STM32F407 работу SNMP агента. Запустить его удалось, а вот привязать свою простенькую базу mib и отправить своё сообщение на snmp-сервер на банальное изменение состояния контакта никак не получается.
Будут ли такие уроки или может я пропустил какой? Не могу найти нигде хороших примеров.Август 16, 2021 в 6:32 дп #22401Vadim_81УчастникДобрый день уважаемые форумчане. Автору уроков огромное спасибо за труды. Проблема в следующем, пытаюсь пересадить модуль rfm69HCW 868 (SX1231H) с адруины на stm(discovery 407), ничего не получается, даже инитить не хочет. Библиотеки инициализации писать самому мозгов не хватает, да и признаться честно, ничего не понимаю в радио. Пробовал библиотеки от lowpowerlab, radiohead. Пытался найти в инете «живой» пример для этого модуля, ничего не вышло, для адруин полно, для stm нету. Автор уроков вроде обещал «пощупать» эту тему, где то видел в коментах, к nrf24 вроде, но к сожалению дальше дело не пошло. Может есть у кого рабочий пример, ну или хотя бы ссылка на ресурс (оконные датчики на хабре не предлагать, тоже не завелся) был бы очень признателен.
Август 16, 2021 в 6:41 дп #22402A-SoftУчастникя как-то переделывал ардуиновскую библиотеку под STM32. Невеликие там проблемы.
если вы на своей discovery 407 смогли выполнить несколько уроков NarodStream, тогда пишите chechetkin.v.v@mail.ruАвгуст 16, 2021 в 9:42 дп #22403ko062vvsУчастникДобрый день! Нужна помощь. Уже недели 3 мучаюсь.
Задача: Читать JPG из SD и выводить на ILI9341 с помощью DMA Circular.
Проблемы в основном с картинками 320*240. Где используется в передаче 3 пакета. с 1 или 2 все норм.
Моя функция такая:void ILI9341_Draw_SDImageJPG(uint16_t x,uint16_t y, const char * fileName)
{if((x >=ILI9341_SCREEN_WIDTH) || (y >=ILI9341_SCREEN_HEIGHT)) return;
FIL Myfile;
retSD = f_mount(&SDFatFS, «», 1);
retSD = f_open(&Myfile,fileName,FA_READ);
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo,&Myfile);
(void) jpeg_read_header(&cinfo, TRUE);
(void) jpeg_start_decompress(&cinfo);
JSAMPARRAY buffer;
uint16_t row_stride = cinfo.output_width * cinfo.output_components;
buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
uint32_t buf_size, count = 0;
uint32_t n=cinfo.output_width*cinfo.output_height*2;if(n<=65536)
{
buf_size = n;
}
else
{
buf_size = 2;
for(uint8_t j = 3; j < n/3; j++)
{
if(n%j == 0)
{
buf_size = n/j;
break;
}
}
}ILI9341_SetAddress(x, y, x+cinfo.output_width-1, y+cinfo.output_height-1);
while(cinfo.output_scanline < cinfo.output_height)
{
(void) jpeg_read_scanlines(&cinfo, buffer, 1);for(uint16_t i=0;i<cinfo.output_width;i++)
{frm_buf[count++]= RGB(buffer[0][i*3],buffer[0][i*3+1],buffer[0][i*3+2]) >> 8;
frm_buf[count++]= RGB(buffer[0][i*3],buffer[0][i*3+1],buffer[0][i*3+2]) & 0xFF;if (count >= buf_size)
{
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET);//select
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET); //data
dma_spi_cnt = 1;
HAL_SPI_Transmit_DMA(HSPI_INSTANCE, frm_buf, buf_size-1);
while(!dma_spi_fl) {}
dma_spi_fl=0;
count=0;}
}
}(void) jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
retSD = f_close(&Myfile);}
//HAL_SPI_Transmit_DMA(HSPI_INSTANCE, frm_buf, buf_size-1);
почему я сделал -1 потому что во втором пакете данных идет мусор. С -1 мусора нет но картинка смещена.
Ноябрь 25, 2021 в 7:40 дп #22612RifnurУчастникЗдравствуйте. Я благодарен за ваши труды.
Я новичок в программировании, изучаю АЦП по Уроку 16 на базе платы NUCLEO-767ZI, дисплей LCD 1602, среда разработки STM32CubeIDE_1.7.0, генератор кода STM32CubeMX 6.3.0. Значение АЦП sprintf(str,»%.2d v»,i); выводится на дисплей нормально, а с плавающей запятой sprintf(str,»%.2f v»,u);- пустое поле. На этой строке программы сообщение: The float formatting support is not enabled, check your MCU Settings from «Project Properties>C/C++Build>Settings>Tool Settings», or add manually «-u_printf_float» in linker flags. В свойствах проекта нет такой вкладки >Tool Settings. Кто может сталкивался с такой проблемой, какой выход?Январь 20, 2022 в 6:01 дп #22689AlexTashУчастникДобрый день, планируется ли разбор работы с датчиком vl53l0x?
Январь 27, 2022 в 6:52 пп #22690megger380УчастникRifnur, урок 100 часть 1, описано как включить float в eclipse.
Январь 28, 2022 в 3:36 дп #22692RifnurУчастникmegger, Спасибо за помощь.(Rifnur, урок 100 часть 1, описано как включить float в eclipse.)
Февраль 4, 2022 в 12:50 пп #22693Oleg_УчастникДобрый день! Помогите советом. Хочу писать круговой буфер на sd карту с помощью библиотеки FATFS и шины SDIO, получается создавать текстовые файлы в корневой каталог. Но не могу найти как писать файлы в папки. То есть папку создать получается, но как создать текстовый документ именно в этой папке не пойму. Подскажите пожалуйста как это сделать или где об этом почитать.
Октябрь 17, 2022 в 10:40 дп #24240vityaУчастникДобрый день! Не могу реализовать задержку 1мкС на котроллере STM32F407 на FreeRTOS. Может у кого есть готовое решение или совет.
Декабрь 11, 2022 в 3:42 дп #24669vadima78УчастникВсем добрый день!
Я новичок в теме программирования и программирования МК тоже)
Но с электроникой дружу хорошо.
Так как уроки датируются прошлыми годами(по крайней мере первые из них про STM),
то прошу посоветовать на данный момент актуальную плату для изучения/обучения.И такой вопрос: с чего лучше начать, с какого МК изучение программирования?
Всем кто ответил — большое спасибо.PS. прошу извинить админа, но тему с общими вопросами не нашел.
Декабрь 12, 2022 в 12:16 пп #24672murawУчастникДобрый день.
Вопрос похожий на предыдущий. Программирую ПЛК, но из микроконтроллеров чуть-чуть знаю только PIC.
Возникла задача записать звук 60 сек с частотой дискретизации 44кГц (минимум 30), а затем по запросу отправить его по WiFi, либо Блютуз.
ESP32 с этой задачей справиться?Декабрь 12, 2022 в 12:18 пп #24673Vadim_81УчастникА языкам программирования десятилетия… Принципиально нового в Вашем случае ничего не изобрели, Начинайте с любого, который больше понятен, а массивы, циклы, логика работы везде одинаковая, отличается только синтаксис, да и то не сильно. В тоже время, не надо начинать изучать велосипед, чтобы получить водительские права. Любой контроллер не смотря на годы публикации постов актуален для тех или иных задач.
-
АвторСообщения
-
АвторСообщения
-
chechetkin.v.v@mail.ru
шлите схему, посмотрим что можно сделатьДобрый день. Захотелось ребёнку моему красивую подсветку. Выбрал ленту ws2812. Поскольку на этом сайте давно нахожусь, попробовал скомпилить готовые проекты с этого сайта. Всё работает, с одним НО. Почему то у меня работает половина -1 светодиод. То есть если #define LED_COUNT 300, то у меня работают только 149 светодиодов. У автора всё работает нормально. Лента у меня 60св. м. длинной 5 метров. То есть суммарно 300 светодиодов. При дефайне в проекте 300 работает 149 и какое бы число не ставил соблюдается эта закономерность — Половина минус 1. Если ставлю 601 то работают все.
Заранее благодарю.Добрый день!
Пытаюсь настроить на STM32F407 работу SNMP агента. Запустить его удалось, а вот привязать свою простенькую базу mib и отправить своё сообщение на snmp-сервер на банальное изменение состояния контакта никак не получается.
Будут ли такие уроки или может я пропустил какой? Не могу найти нигде хороших примеров.Добрый день уважаемые форумчане. Автору уроков огромное спасибо за труды. Проблема в следующем, пытаюсь пересадить модуль rfm69HCW 868 (SX1231H) с адруины на stm(discovery 407), ничего не получается, даже инитить не хочет. Библиотеки инициализации писать самому мозгов не хватает, да и признаться честно, ничего не понимаю в радио. Пробовал библиотеки от lowpowerlab, radiohead. Пытался найти в инете «живой» пример для этого модуля, ничего не вышло, для адруин полно, для stm нету. Автор уроков вроде обещал «пощупать» эту тему, где то видел в коментах, к nrf24 вроде, но к сожалению дальше дело не пошло. Может есть у кого рабочий пример, ну или хотя бы ссылка на ресурс (оконные датчики на хабре не предлагать, тоже не завелся) был бы очень признателен.
я как-то переделывал ардуиновскую библиотеку под STM32. Невеликие там проблемы.
если вы на своей discovery 407 смогли выполнить несколько уроков NarodStream, тогда пишите chechetkin.v.v@mail.ruДобрый день! Нужна помощь. Уже недели 3 мучаюсь.
Задача: Читать JPG из SD и выводить на ILI9341 с помощью DMA Circular.
Проблемы в основном с картинками 320*240. Где используется в передаче 3 пакета. с 1 или 2 все норм.
Моя функция такая:void ILI9341_Draw_SDImageJPG(uint16_t x,uint16_t y, const char * fileName)
{if((x >=ILI9341_SCREEN_WIDTH) || (y >=ILI9341_SCREEN_HEIGHT)) return;
FIL Myfile;
retSD = f_mount(&SDFatFS, «», 1);
retSD = f_open(&Myfile,fileName,FA_READ);
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo,&Myfile);
(void) jpeg_read_header(&cinfo, TRUE);
(void) jpeg_start_decompress(&cinfo);
JSAMPARRAY buffer;
uint16_t row_stride = cinfo.output_width * cinfo.output_components;
buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
uint32_t buf_size, count = 0;
uint32_t n=cinfo.output_width*cinfo.output_height*2;if(n<=65536)
{
buf_size = n;
}
else
{
buf_size = 2;
for(uint8_t j = 3; j < n/3; j++)
{
if(n%j == 0)
{
buf_size = n/j;
break;
}
}
}ILI9341_SetAddress(x, y, x+cinfo.output_width-1, y+cinfo.output_height-1);
while(cinfo.output_scanline < cinfo.output_height)
{
(void) jpeg_read_scanlines(&cinfo, buffer, 1);for(uint16_t i=0;i<cinfo.output_width;i++)
{frm_buf[count++]= RGB(buffer[0][i*3],buffer[0][i*3+1],buffer[0][i*3+2]) >> 8;
frm_buf[count++]= RGB(buffer[0][i*3],buffer[0][i*3+1],buffer[0][i*3+2]) & 0xFF;if (count >= buf_size)
{
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET);//select
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET); //data
dma_spi_cnt = 1;
HAL_SPI_Transmit_DMA(HSPI_INSTANCE, frm_buf, buf_size-1);
while(!dma_spi_fl) {}
dma_spi_fl=0;
count=0;}
}
}(void) jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
retSD = f_close(&Myfile);}
//HAL_SPI_Transmit_DMA(HSPI_INSTANCE, frm_buf, buf_size-1);
почему я сделал -1 потому что во втором пакете данных идет мусор. С -1 мусора нет но картинка смещена.
Здравствуйте. Я благодарен за ваши труды.
Я новичок в программировании, изучаю АЦП по Уроку 16 на базе платы NUCLEO-767ZI, дисплей LCD 1602, среда разработки STM32CubeIDE_1.7.0, генератор кода STM32CubeMX 6.3.0. Значение АЦП sprintf(str,»%.2d v»,i); выводится на дисплей нормально, а с плавающей запятой sprintf(str,»%.2f v»,u);- пустое поле. На этой строке программы сообщение: The float formatting support is not enabled, check your MCU Settings from «Project Properties>C/C++Build>Settings>Tool Settings», or add manually «-u_printf_float» in linker flags. В свойствах проекта нет такой вкладки >Tool Settings. Кто может сталкивался с такой проблемой, какой выход?Добрый день, планируется ли разбор работы с датчиком vl53l0x?
Rifnur, урок 100 часть 1, описано как включить float в eclipse.
megger, Спасибо за помощь.(Rifnur, урок 100 часть 1, описано как включить float в eclipse.)
Добрый день! Помогите советом. Хочу писать круговой буфер на sd карту с помощью библиотеки FATFS и шины SDIO, получается создавать текстовые файлы в корневой каталог. Но не могу найти как писать файлы в папки. То есть папку создать получается, но как создать текстовый документ именно в этой папке не пойму. Подскажите пожалуйста как это сделать или где об этом почитать.
Добрый день! Не могу реализовать задержку 1мкС на котроллере STM32F407 на FreeRTOS. Может у кого есть готовое решение или совет.
Всем добрый день!
Я новичок в теме программирования и программирования МК тоже)
Но с электроникой дружу хорошо.
Так как уроки датируются прошлыми годами(по крайней мере первые из них про STM),
то прошу посоветовать на данный момент актуальную плату для изучения/обучения.И такой вопрос: с чего лучше начать, с какого МК изучение программирования?
Всем кто ответил — большое спасибо.PS. прошу извинить админа, но тему с общими вопросами не нашел.
Добрый день.
Вопрос похожий на предыдущий. Программирую ПЛК, но из микроконтроллеров чуть-чуть знаю только PIC.
Возникла задача записать звук 60 сек с частотой дискретизации 44кГц (минимум 30), а затем по запросу отправить его по WiFi, либо Блютуз.
ESP32 с этой задачей справиться?А языкам программирования десятилетия… Принципиально нового в Вашем случае ничего не изобрели, Начинайте с любого, который больше понятен, а массивы, циклы, логика работы везде одинаковая, отличается только синтаксис, да и то не сильно. В тоже время, не надо начинать изучать велосипед, чтобы получить водительские права. Любой контроллер не смотря на годы публикации постов актуален для тех или иных задач.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.