Программирование МК STM32

 

 

 

Помечено: , ,

В этой теме 85 ответов, 43 участника, последнее обновление  Sergey1985 2 нед., 6 дн. назад.

Просмотр 15 сообщений - с 1 по 15 (из 86 всего)
  • Автор
    Сообщения
  • #10146

    Narod Stream
    Хранитель

    Здесь можно обсудить проблемы, связанные с программированием микроконтроллеров STM32.

    #10160

    Narod Stream
    Хранитель

    перемещено (сообщение от tarasik)

    В 58 уроке предоставлен пример (За что огромное спасибище) считывания в память sdram картинки в формате bmp перед выводом на дисплей. Хотелось бы сделать тоже самое, только с каким нибудь примитивом. Например получили мы массив данных из ADC, как этот массив точек нарисовать в памяти функцией BSP_LCD_DrawPixel перед копированием в активную обасть фунцией BSP_LCD_DrawBitmap? Поскольку если их рисовать напрямую в активную облась дисплей жутко мерцает и дергается. Еще раз спасибо.

    #10162

    Narod Stream
    Хранитель

    С этим немного не так и лучше использовать DMA. Я в реальном времени рисовал на экране график маленькими массивами из DMA, используя её на всю мощность. Причём массив не содержал ненужных точек. Я заново рисовал прямоугольную область с частью сетки, а из массива отображал лишь точки кривой.
    Но если Вам тяжело, то не парьтесь и воспользуйтесь библиотекой emWin. Как это делается, я показал в соответствующих уроках.

    #10165

    tarasik
    Участник

    Спасибо за ответ, к сожалению привязать emWin к плате 769 у меня не получилось. В уроках рассказывается о 746. По теме: Пытаюсь сделать что то наподобие осцилографа. DMA складывает в массив данные из ADC. Для запуска используется внешний триггер, поэтому получаю свои 800 точек, и после фильтрации они готовы к отображению. И вот когда я рисую эти точки BSP_LCD_DrawPixel, то вижу свой пилообразный сигнал, но экран мерцает. Я так думаю, что это из за того, что рисую сразу в активном слое. Можно конечно воспользоваться примерами emWin от Keil, но там они используют emWin в связке со своей RTOS а мне хочется использовать FreeRTOS. Уроки по которой любезно предоставленные Вами очень сильно облегчают жизнь. Думаю не лишним будет, еще раз сказать Вам спасибо.

    #10166

    Narod Stream
    Хранитель

    По 769 я тоже планировал подобный урок, причём библиотеку я прикрутил, но ещё не пришло время этой платы. Не со всеми компиляторами там всё хорошо.

    #10167

    tarasik
    Участник

    Будем ждать 🙂 Ну меду делом самому пытаться разобраться. В любом случае спасибо

    #10492

    Casper17
    Участник

    Здравствйте. У меня возникла проблема с шиной i2c на контроллере stm32f103c8t6. В CubeMX настроил i2c1 сгенерировал проект, подключил датчик si7021 и все заработало. Но когда решил перенаправить шину на другие ножки с PB7,PB6 на PB8,PB9 через CubeMX и после генерации и заливки проекта не работает, выдает ерунду.. В чем может быть проблема?

    #10607

    alximed
    Участник

    Всем привет .А вопрос вот в чем . У меня есть много микросхем STC89C5xx . Скачал с keila прогу c51v956 . Установил . Если вкл keil5 то в нем нет этих микросхем. А в старых файлах у меня есть keil4 . Но когда я запускаю keil4 то открывается пустой keil. А что я хочу из этого. Если я могу писать в keil5 программы ,а у меня есть плата STM32F303Discovery. А в этой плате можно прошивать и другие микросхемы (я так думаю можно же прошить STC89C5xx )

    #10659

    Rocket
    Участник

    Здравствуйте.
    Никак не получается запустить проекты для STM32f7 в воркбенче.
    Подскажите пожалуйста как переделать проект для Воркбенча в проект для Кейла.

    Просто выбрав в кубе кейл вместо воркбенча не дает результатов.

    Спасибо

    #10683

    dimonvlg
    Участник

    Владимир, здравствуйте! Прошу Вас сделать «поскриптум» к уроку №9! Считать температуру и подключить кнопки настройки.

    #10686

    Galeaf
    Участник

    Здравствуйте.
    Проходя урок 73 (подключение emWin), собирал его в Кейле и столкнулся с такой проблемой.

    При попытке скомпилировать проект в консоли выходят ошибки:
    compiling system_stm32f7xx.c…
    ../Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h(180): error: #20: identifier «HAL_StatusTypeDef» is undefined
    HAL_StatusTypeDef HAL_Init(void);

    Может кто то сталкивался и знает решение.

    #10690

    Evgeny
    Участник

    Тоже столкнулся с токой проблемой, решил так:
    1. В файле «main.h» заремить строку #include «stm32f7xx_hal.h».
    2. В файле «LCDConf.c» добавить строку #include «stm32f7xx_hal.h».
    3. В файле «stm32f7xx_it.c» строку «volatile GUI_TIMER_TIME OS_TimeMS;» исправил на «extern volatile GUI_TIMER_TIME OS_TimeMS;»
    4. В файле «main.c» строку «LTDC_HandleTypeDef hltdc;» исправил на «extern LTDC_HandleTypeDef hltdc;»
    Ещё ошибка была в файле «ltdc.c» в функции «void TFT_DisplayString(uint16_t Xpos, uint16_t Ypos, const uint8_t *Text, Text_AlignModeTypedef Mode)»
    Keil возмущался на «const uint8_t *Text», пришлось удалить «const» в файлах «ltdc.c» и «ltdc.h».

    #10692

    Narod Stream
    Хранитель

    >>Здравствуйте.
    >>Никак не получается запустить проекты для STM32f7 в воркбенче.
    >>Подскажите пожалуйста как переделать проект для Воркбенча в проект для Кейла.
    >>Просто выбрав в кубе кейл вместо воркбенча не дает результатов.
    >>Спасибо

    Именно так. Нужно в Cube переключить в настройках и перегенерировать. Правда, с начала желательно поудалить из папки всё лишнее, оставить папки Inc и Src, а также кубовский файл с расширением «ioc» и файл .mxproject.

    #10695

    Galeaf
    Участник

    Спасибо за ответ, Evgeny.
    Да, главная проблема была в инклюде «stm32f7xx_hal.h»
    Хотя я так и не понял по какой причине Кейл так себя ведет.

    Есть еще один момент.
    Собираю проект также под STM32F746-DISCO
    С последних версий CubeMX, при настройке DMA2D, в функцию
    «static void MX_DMA2D_Init(void)» прописываются две строки на которые ругаются компилятор, так как они относятся к другим микроконтроллерам:

    hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
    hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;

    После их комментирования все работает нормально и без ошибок.
    С последним обновлением Version 4.22.1 STM32Cube V1.0 проблема осталась.
    Как обойти эту особенность?

    #10862

    Oleg
    Участник

    Добрый вечер

    Планируете ли вы сделать курс уроков по плате Open429I-C Package С, отладочный набор на базе микроконтроллера STM32F429IGT6 дисплей 7 дюймов, или Waveshare Core746I STM32F746IGT6
    (http://www.waveshare.com/wiki/Open429I-C)

  • Автор
    Сообщения
  • #10146

    Narod Stream
    Хранитель
    • Оффлайн

    Здесь можно обсудить проблемы, связанные с программированием микроконтроллеров STM32.

    #10160

    Narod Stream
    Хранитель
    • Оффлайн

    перемещено (сообщение от tarasik)

    В 58 уроке предоставлен пример (За что огромное спасибище) считывания в память sdram картинки в формате bmp перед выводом на дисплей. Хотелось бы сделать тоже самое, только с каким нибудь примитивом. Например получили мы массив данных из ADC, как этот массив точек нарисовать в памяти функцией BSP_LCD_DrawPixel перед копированием в активную обасть фунцией BSP_LCD_DrawBitmap? Поскольку если их рисовать напрямую в активную облась дисплей жутко мерцает и дергается. Еще раз спасибо.

    #10162

    Narod Stream
    Хранитель
    • Оффлайн

    С этим немного не так и лучше использовать DMA. Я в реальном времени рисовал на экране график маленькими массивами из DMA, используя её на всю мощность. Причём массив не содержал ненужных точек. Я заново рисовал прямоугольную область с частью сетки, а из массива отображал лишь точки кривой.
    Но если Вам тяжело, то не парьтесь и воспользуйтесь библиотекой emWin. Как это делается, я показал в соответствующих уроках.

    #10165

    tarasik
    Участник
    • Оффлайн

    Спасибо за ответ, к сожалению привязать emWin к плате 769 у меня не получилось. В уроках рассказывается о 746. По теме: Пытаюсь сделать что то наподобие осцилографа. DMA складывает в массив данные из ADC. Для запуска используется внешний триггер, поэтому получаю свои 800 точек, и после фильтрации они готовы к отображению. И вот когда я рисую эти точки BSP_LCD_DrawPixel, то вижу свой пилообразный сигнал, но экран мерцает. Я так думаю, что это из за того, что рисую сразу в активном слое. Можно конечно воспользоваться примерами emWin от Keil, но там они используют emWin в связке со своей RTOS а мне хочется использовать FreeRTOS. Уроки по которой любезно предоставленные Вами очень сильно облегчают жизнь. Думаю не лишним будет, еще раз сказать Вам спасибо.

    #10166

    Narod Stream
    Хранитель
    • Оффлайн

    По 769 я тоже планировал подобный урок, причём библиотеку я прикрутил, но ещё не пришло время этой платы. Не со всеми компиляторами там всё хорошо.

    #10167

    tarasik
    Участник
    • Оффлайн

    Будем ждать 🙂 Ну меду делом самому пытаться разобраться. В любом случае спасибо

    #10492

    Casper17
    Участник
    • Оффлайн

    Здравствйте. У меня возникла проблема с шиной i2c на контроллере stm32f103c8t6. В CubeMX настроил i2c1 сгенерировал проект, подключил датчик si7021 и все заработало. Но когда решил перенаправить шину на другие ножки с PB7,PB6 на PB8,PB9 через CubeMX и после генерации и заливки проекта не работает, выдает ерунду.. В чем может быть проблема?

    #10607

    alximed
    Участник
    • Оффлайн

    Всем привет .А вопрос вот в чем . У меня есть много микросхем STC89C5xx . Скачал с keila прогу c51v956 . Установил . Если вкл keil5 то в нем нет этих микросхем. А в старых файлах у меня есть keil4 . Но когда я запускаю keil4 то открывается пустой keil. А что я хочу из этого. Если я могу писать в keil5 программы ,а у меня есть плата STM32F303Discovery. А в этой плате можно прошивать и другие микросхемы (я так думаю можно же прошить STC89C5xx )

    #10659

    Rocket
    Участник
    • Оффлайн

    Здравствуйте.
    Никак не получается запустить проекты для STM32f7 в воркбенче.
    Подскажите пожалуйста как переделать проект для Воркбенча в проект для Кейла.

    Просто выбрав в кубе кейл вместо воркбенча не дает результатов.

    Спасибо

    #10683

    dimonvlg
    Участник
    • Оффлайн

    Владимир, здравствуйте! Прошу Вас сделать «поскриптум» к уроку №9! Считать температуру и подключить кнопки настройки.

    #10686

    Galeaf
    Участник
    • Оффлайн

    Здравствуйте.
    Проходя урок 73 (подключение emWin), собирал его в Кейле и столкнулся с такой проблемой.

    При попытке скомпилировать проект в консоли выходят ошибки:
    compiling system_stm32f7xx.c…
    ../Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h(180): error: #20: identifier «HAL_StatusTypeDef» is undefined
    HAL_StatusTypeDef HAL_Init(void);

    Может кто то сталкивался и знает решение.

    #10690

    Evgeny
    Участник
    • Оффлайн

    Тоже столкнулся с токой проблемой, решил так:
    1. В файле «main.h» заремить строку #include «stm32f7xx_hal.h».
    2. В файле «LCDConf.c» добавить строку #include «stm32f7xx_hal.h».
    3. В файле «stm32f7xx_it.c» строку «volatile GUI_TIMER_TIME OS_TimeMS;» исправил на «extern volatile GUI_TIMER_TIME OS_TimeMS;»
    4. В файле «main.c» строку «LTDC_HandleTypeDef hltdc;» исправил на «extern LTDC_HandleTypeDef hltdc;»
    Ещё ошибка была в файле «ltdc.c» в функции «void TFT_DisplayString(uint16_t Xpos, uint16_t Ypos, const uint8_t *Text, Text_AlignModeTypedef Mode)»
    Keil возмущался на «const uint8_t *Text», пришлось удалить «const» в файлах «ltdc.c» и «ltdc.h».

    #10692

    Narod Stream
    Хранитель
    • Оффлайн

    >>Здравствуйте.
    >>Никак не получается запустить проекты для STM32f7 в воркбенче.
    >>Подскажите пожалуйста как переделать проект для Воркбенча в проект для Кейла.
    >>Просто выбрав в кубе кейл вместо воркбенча не дает результатов.
    >>Спасибо

    Именно так. Нужно в Cube переключить в настройках и перегенерировать. Правда, с начала желательно поудалить из папки всё лишнее, оставить папки Inc и Src, а также кубовский файл с расширением «ioc» и файл .mxproject.

    #10695

    Galeaf
    Участник
    • Оффлайн

    Спасибо за ответ, Evgeny.
    Да, главная проблема была в инклюде «stm32f7xx_hal.h»
    Хотя я так и не понял по какой причине Кейл так себя ведет.

    Есть еще один момент.
    Собираю проект также под STM32F746-DISCO
    С последних версий CubeMX, при настройке DMA2D, в функцию
    «static void MX_DMA2D_Init(void)» прописываются две строки на которые ругаются компилятор, так как они относятся к другим микроконтроллерам:

    hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
    hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;

    После их комментирования все работает нормально и без ошибок.
    С последним обновлением Version 4.22.1 STM32Cube V1.0 проблема осталась.
    Как обойти эту особенность?

    #10862

    Oleg
    Участник
    • Оффлайн

    Добрый вечер

    Планируете ли вы сделать курс уроков по плате Open429I-C Package С, отладочный набор на базе микроконтроллера STM32F429IGT6 дисплей 7 дюймов, или Waveshare Core746I STM32F746IGT6
    (http://www.waveshare.com/wiki/Open429I-C)

Просмотр 15 сообщений - с 1 по 15 (из 86 всего)

Для ответа в этой теме необходимо авторизоваться.