Wasserati
Участник-
Постов
25 -
Зарегистрирован
-
Посещение
Весь контент Wasserati
-
Проблема с обработчиком прерываний
Wasserati ответил sith633 тема в ARM, 32bit
Если подумать, то согласен, что приведенный мной вариант не правильный. Возможность изменения статусных бит за время чтения-модификации-записи я не учел. -
Проблема с обработчиком прерываний
Wasserati ответил sith633 тема в ARM, 32bit
Я бы поспорил. Что-либо сбросить случайно второй вариант в принципе не может. А вот посмотрев даташит могу утверждать, что обе конструкции дадут идентичный эффект, тут разницы не будет, да. -
Проблема с обработчиком прерываний
Wasserati ответил sith633 тема в ARM, 32bit
Если тут сброс бита подразумевается: TIM2->SR = ~TIM_SR_UIF; то он не так делается, а так: TIM2->SR &= ~TIM_SR_UIF; В остальных местах та же ситуация. -
А у таймера есть разрешение генерировать события для DMA? Бит UDE в регистре DIER таймера должен быть установлен в единицу. Переключать DMA на DMA2 не нужно. Событие TIM4_UP привязано к Stream6 Cnannel 2 DMA1. На DMA2 оно просто работать не будет. Если так нужно DMA2 то стоит взять другой таймер, который может генерировать события именно для DMA2. Например TIM1 или TIM8.
-
Двусмысленно немного выразился, в итоге получилась путаница. У куба все библиотеки хранятся в отдельной папке которая так и называется "Repository", что я и написал. Про системы контроля версий как-то мысль даже в голову не пришла.
-
Если отдельно без куба, то вот например для F0: https://my.st.com/content/my_st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-mcu-packages/stm32cubef0.license=1543601114301.product=STM32CubeF0.version=1.9.0.html Подобным образом и для других линеек мк. Правда качать сотни мегабайт данных все равно придется. Не могут ST не приложить пачку примеров использования под все возможные демоплаты, кучу всякой лишней документации и софта. Все нужное в папке Drivers/CMSIS. Куб я бы советовал поставить. Все актуальные версии заголовочных и прочих файлов только под него сейчас идут. Места он много не занимает, есть не просит. Сам за актуальностью библиотек следит.
-
Startup файл соответствующего мк можно из репозитория CubeMX взять. Там они в отдельной папочке лежат. Советую обновить все файлы от ST. А то какие-то уже очень старые версии файлов в приложенном проекте.
-
STM32F103 и сильный шум АЦП
Wasserati ответил Ruslan-maniak тема в ARM, 32bit
Максимальная частота тактирования АЦП - 14 МГц. Отсюда и могу быть проблемы. -
STM32F0 и FT232
Wasserati ответил Wasserati тема в ARM, 32bit
Спасибо всем за советы. Проблему пока что решил использовав кольцевой буфер. Изначально я использовал более запутанную схему буферов, поэтому перезагрузка DMA занимала довольно много времени, за которое USART успевал принять 2 лишних байта и поймать overrun. Неприятно что ST такую ситуацию не предусмотрело. -
STM32F0 и FT232
Wasserati ответил Wasserati тема в ARM, 32bit
Буферов на прием у меня и так несколько. DMA копирует данные в один из них. По заполнению буфера происходит перезагрузка DMA. Данные начинают копироваться уже в другой буфер. Проблема возникает как раз в при перезагрузке, так как она может произойти прямо в момент приема данных. Например, в текущем буфере есть 2 свободных байта места, а нужно принять данных на 10 байт. DMA принимает 2 байта в текущий буфер. Перезагружается. Принимает еще 8 байт в другой буфер. За время перезагрузки, USART ловит overrun. То есть сигнал RTS нужного эффекта не дает. На скриншоте именно момент перезагрузки показан. -
STM32F0 и FT232
Wasserati опубликовал тема в ARM, 32bit
Есть МК STM32F030C8 подключенный к ПК через FT232. Настройки USART: 8 бит данных, 2 стоп бита, скорость - 3М, RTS/CTS включены. Чего я ожидал от Flow Control. USART принимает байт, устанавливает флаг RXNE, устанавливает на выходе RTS 1. FT232 приостанавливает передачу пока на линии RTS не установится 0. Что получается в действительности. USART принимает байт, устанавливает флаг RXNE, устанавливает на выходе RTS 1. FT232 передает еще один байт, а уже потом приостанавливает передачу пока на линии RTS не установится 0. Как итог, USART ловит overrun ошибку. DMA, который работает с RX линией, по этой причине, периодически виснет. Скриншот этой ситуации из лог. анализатора. 1. Flow Control так и должен работать, или где-то есть ошибка? 2. Как избежать потери данных в этом случае? Вручную забирать данные из RX регистра, пока DMA неактивен? -
stm32vldiscovery определяется как флешка
Wasserati ответил qnx тема в ARM, 32bit
Установка "Connect under reset" ничем в данном случае не поможет, так как у обрезка программатора установленного на stm32vldiscovery попросту нету линии Reset. Данную процедуру можно провести только следующим способом: принудительно притянуть линию Reset МК к земле (на stm32vldiscovery для этого специальная кнопка есть черного цвета), запустить процесс подключения к МК в программе (ST-Linl Utility, Keil и пр.) и сразу же отпустить Reset. После этого произойдет подключение. В некоторых особо запущенных случаях, удерживать Reset нужно секунду-две. Ну и еще раз повторю, программатор софтом определяется, он просто не может подключиться к программируемому МК. Как выше заметили, это может происходить из-за неправильного подключения, отсутствия перемычек(любой из трех установленных на плате), либо, в худшем случае, программируемый МК уже мертв. -
stm32vldiscovery определяется как флешка
Wasserati ответил qnx тема в ARM, 32bit
Судя по всем скриншотам программатор определяется нормально. Есть проблемы с подключением к МК. Опишите более конкретно что подключается и как. С stm32VLDiscovery дело имел довольно давно, но насколько помню это плата определяется сразу и как внешний накопитель и как программатор. -
Для начала можно попробовать понять что вообще происходит при отключении: hardfault, зависание на определенном участке кода или еще что-то. Скорее всего авторами стека ситуация разрыва соединения не предусмотрена вообще.
-
Kabdim Спасибо, поправил. Если у кого есть рабочий пример программы передачи массива, поделитесь, пожалуйста.
-
Здравствуйте. Осваиваю интерфейс USB. На основе HAL сгенерировал CDC устройство. Пытаюсь передавать с МК массив длинной 256 байт. Со стороны ПК принимаю эти же 256 байт. Вот здесь и возникает проблема. На стороне ПК сначала принимаются элементы массива с 64 по 255, а уже потом с 0 по 64. Тоесть первые 64 байта каким то образом сдвигаются в самый конец.В чем тут ошибка может быть? Использую МК STM32F103RC. Код использую нижеприведенный. Все остальное - код куба, без каких либо изменений. uint8_t buf[LEN], j = 0; int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USB_DEVICE_Init(); uint16_t i; while (1) { if (j == 0) { for (i = 0; i < LEN; i++) { buf[i] = (uint8_t)i; } j = 1; } else { for (i = (LEN - 1); i >= 0; i--) { buf[i] = (uint8_t)i; } j = 0; } buf[0] = 0x01; buf[1] = 0x02; buf[LEN - 2] = 0x03; buf[LEN - 1] = 0x04; HAL_Delay(1000); while (CDC_Transmit_FS(buf, LEN) == 1); } }
-
Eclipse + GCC + HAL
Wasserati ответил Wasserati тема в GNU/OpenSource средства разработки
-
Eclipse + GCC + HAL
Wasserati опубликовал тема в GNU/OpenSource средства разработки
Здравствуйте. Собрал среду для STM по следующей статье: http://www.carminenoviello.com/en/2014/12/...2nucleo-part-1/ Для пробы сгенерировал в QubeMX простой проект - мигалку, который нормально собрался и заработал. Проблемы возникли при попытке собрать проект с USB, сгенерированый в том же QubeMX. Eclipse в упор не видит часть функций для работы с USB, и выдает ошибки undefined reference to..., хотя #include для заголовочного файла с ними есть. Если использовать комбинации CTRL+C, CTRL+V (заменить функцию на саму себя), то ошибка исчезает, но только до попытки компиляции, после которой ошибка опять появляется. Еще одна странность в том, что есть функции, которые ошибок не вызывают, но при этом находятся в том же файле, что и ошибочные. Обе функции со скриншота находятся в одном файле. В чем здесь проблема? И как можно ее исправить? Template_STM32F1xx.7z -
Я с такой проблемой тоже сталкивался, правда на плате VLDISCOVERY. Лечилось достаточно просто: нужно поставить конденсатор емкостью пикофарад 100 между линией SWCLK и общим проводом. После этого все работет как нужно. Скорость прошивки также не особо падает.
-
Отладка STM32 в Eсlipse+ST-link GDB сервер
Wasserati ответил Wasserati тема в ARM, 32bit
Сергей Борщ 1. GDB в строке GDB command прописан. 2. С брандмауером все в порядке, пробовал порт специально в исключения добавлять, не помогло. 3. Команда не распознается, проверить этот пункт не могу. 4. В Verbose моде что-то вроде запускается, но весь процесс заканчивается ошибкой, в консоли творится изображенное на скриншотах: Ошибки есть, но что они значат мне непонятно. Raven Вот Debug _log файл в Verbose mode. debug_log.txt aba О привязке я слышал, но по тому что встречал в интеренете, видно что люди нормально сервером поьзуются, и в ус не дуют. Все у них работает, один я неудачник какой-то. Texane GDB попробую. Спасибо всем большое что откликнулись на призыв новичка о помощи. -
Отладка STM32 в Eсlipse+ST-link GDB сервер
Wasserati ответил Wasserati тема в ARM, 32bit
Если все в данной ситации так тяжело, то посоветуйте какой-нибудь другой вариант внутрисхемной отладки. Мне, как новичку, тяжело ошибки в коде без отладчика искать. -
Отладка STM32 в Eсlipse+ST-link GDB сервер
Wasserati опубликовал тема в ARM, 32bit
Здравствуйте. Помогите с решением одной проблеммы. Решил попробовать внутрисхемную отладку. Выбор пал на способ с использованием ST-link GDB сервер. Все настройки производил по этой статье: http://we.easyelectronics.ru/STM32/otladka...eclipsegcc.html GDB серер нормально запускается и начинает ожидать подключения дебаггера. При попытке запуска оного и начинаются проблеммы: выбивает окно с ошибкой, после чего сервер автоматически выключается. Скриншот ошибки прилагается. Отлаживать пытаюсь программу для платы STM32VL-discavery. Подскажите что в данной ситуации делать, и как все таки запустить отладку? -
STM32W
Wasserati ответил Wasserati тема в ARM, 32bit
Поделитесь тем что есть под gcc пожалуйста. Может смогу под свои нужды как-то довести. Я изначально пытался проект на основе eclipse+CS собрать, но потом рещил на IAR перейти. -
STM32W
Wasserati опубликовал тема в ARM, 32bit
Здравствуйте, уважаемые форумчане. Появилась необходимость разобраться с написанием кода для самодельного модуля на STM32W108CB, но ничего у меня не получается. :smile3046: Главная проблемма состоит в том, что уже длительное время не могу собрать нормальный скелетный проект. Радиомодулем хочу управлять с помощью SimpleMAC, трудности появились с подкючением HAL: файлов оного слишком много, какие из них нужны, а какие нет - непонятно. В примерах что идут с самим SimpleMAC все программы написаны под готовые боарды, у меня же, как отмечал выше, самодельный модуль, а примера создания проекта не для готового модуля я не встречал. Мои попытки настройки под имеющийся модуль привели только к ошибкам и запросам файлов, которых в библиотеках SimpleMAC нету. Может кто обьяснить какие файлы HAL должны бить обязательно подключены к проекту, а какие личшние и особо не нужны; и как вобще правильно настроить проект под мои нужды? Либо поделиться готовым примером Workspace для IAR на основании которого уже сам попытаюсь добиться нужного мне результата. Главная преследуемая цель всего - добится возможности обмена сообщениями между несколькими радиомодулями. Буду рад любой помощи по данному вопросу.