Перейти к содержанию

Добрячок

Members
  • Постов

    10
  • Зарегистрирован

  • Посещение

Информация о Добрячок

  • День рождения 07.03.1987

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    Не связан с электроникой

Достижения Добрячок

Новичок

Новичок (1/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. В этом случае, основной цикл должен быть простым и легким, правильно ? Грубо говоря, в основном цикле постоянно крутятся Ифы, которые смотрят на флаги. Ведь если в основном цикле будет что-то тяжелое или задержка какая-то до Ифа на флаг, то процедура обработки прерывания начнется не тогда, когда случилось прерывание, а когда основной цикл дойдет до соответствующего Ифа. А если до или после этого есть другие Ифы, которые точно также ждут флага из других прерываний ? Тогда получится, что "то самое" прерывание может отработаться только после того, как другие прерывания обработались. Причем, даже если у "того самого" прерывания высокий приоритет, то это ничего не изменит, ибо основной цикл дойдет до "того самого" флага все равно не раньше и не позже обычного.
  2. mail_robot, Спасибо за ваши ответы !
  3. Например, вот. Человек замутил свою функцию на передачу строки по УАРТ. Укоротил ХАЛовскую запись. Стандартный, любимый всеми printf. С приемом данных на ХАЛ тоже сурово выглядит для меня, пока что. Добавлено. Хотя, может это сейчас так кажется... На CCS C for PICs тоже будь здоров всего было: буфер чистить, флаг сбрасывать, а потом сразу ставить и все такое.
  4. mail_robot, Скажите, а вы для приема данных по УАРТ используете стандартные средства(функции) ХАЛ или какую-то свою заготовку ?
  5. А если действительно надо было бы по нажатию кнопки выполнить такую 6-секундную процедуру ? Вот мой вариант: 1) сработало прерывание по кнопке. - потушили светодиоды на ногах 12, 13,14,15. Ну, вот это: HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15, GPIO_PIN_RESET); - создали вспомогательную переменную, которая будет считать эти 6 циклов, присвоили переменной значение "0". - Запустили таймер на 1000 мс - вышли из прерывания. 2) сработало прерывание от таймера после 1000 мс. - проверяем, что вспомогательная переменная меньше 6. - выполняем команду HAL_GPIO_TOGGLE, ну или как там. - инкрементируем вспомогательную переменную на 1. - Запустили таймер на 1000 мс. - вышли из прерывания.
  6. Здравствуйте. Я вот с таким столкнулся: 1) Простая мигалка на STDperiph. Заливаю в камень, Кеил пишет в логе что все хорошо, прошилось, валидировалось и в конце Application Running. 2) Простая мигалка на CubeMX+HAL. Заливаю в камень, Кеил пишет в логе что все хорошо, прошилось, валидировалось, Application Running... и сразу же пишет ошибку internal command error. Почему так может быть ? Мигалка, после отключения программатора (СТ-линк) и подключения питания работает нормально в обоих случаях. В варианте с библиотекой СПЛ, я инициализирую ТОЛЬКО порты. В варианте с КУБом, автоматически сгенерирована конфигурация и порта и тактирования.
  7. Понял, спасибо. Питание из JTAG выдерну. 1) SW - это на том же большом 20-пиновом коннекторе, правильно ? 2) А если питание надо будет, все таки, подать с СТ-линка, то это где включается ? Вот тут нету: А вот тут надо бы 3.3 вольта включить... не дает:
  8. Скажите пожалуйста, а второй код, по ХАЛ который, вы сами пишете обычно ? С библиотекой СТД понятно, код инициализации ни в какой графической аппликации сгенерировать невозможно вообще никак - надо писать самому. А вот с ХАЛ все эти сложные инициализации можно сгенерировать в КубеМХ и все ?
  9. Здравствуйте. Подскажите пожалуйста, как настроить Keil или ST-Link/V2 так, чтобы, после прошивки запитанного модуля, сразу начинала крутиться программа ? - Программирую модуль с STM31F103 через JTAG порт (20 пинов). - ST-Link/V2 мой модуль не запитывает. А можно сделать так, чтобы запитывал, кстати ? - Питаю весь модуль отдельно от USB. - ST-Link/V2 зависает и коммуникация с Кейлом пропадает, кодга я подключаю внешнее питание (от USB которое). - Тоесть, сейчас я делаю так: а) написать код, прошить модуть, б) воткнуть питание и посмотреть как работает программа на железе, в) убедиться, что ничего не работает, как обычно г) выдернуть питание из модуля, д) подправить код и прошить модуль, е) воткнуть питание и посмотреть как работает программа на железе, ж) перейти к пункту "в". А надо так: запитал модуль и меняю прошивки без дергания УСБ питания и/или ЖТАГ. Вот такой модуль: http://www.ebay.com/...e-/121287420704 Вот схема: http://www.armlearni...-V3.0_SCH-1.png
×
×
  • Создать...