Jump to content

    

Сергей Борщ

Модераторы
  • Content Count

    8827
  • Joined

  • Last visited

Everything posted by Сергей Борщ


  1. Сообщения об ошибках

    Чтобы они появились - надо запускать eeschema и pcbnew как отдельные приложения, не из основного kicad. Не спрашивайте, почему - у них свой Kicad way.
  2. А черт его знает. Баловался с ним лет 5 назад, в голове отложилось, что там есть получение списка портов. С QSerialPort не работал.
  3. Да, запускал. Это код библиотеки для qt, соответственно запускал я его в проекте qt. Но вам же была нужна идея, как получить список портов, а идею из этого кода вытащить можно и без qt.
  4. Тогда вот: https://github.com/qextserialport/qextserialport/blob/master/src/qextserialenumerator_win.cpp
  5. Обращение к битам в массиве через <<

    #define IS(x) (data[(x) >> 3] & (1 << ((x) & 0x07)))
  6. Посмотрите сюда: https://www.codeproject.com/Articles/2609/Enumerating-serial-ports-W2K-style
  7. Почитайте, может и мешает, хотя по симптомам случай не ваш:
  8. Засада примененного далласом алгоритма в том, что все единицы (неответ датчика) дадут правильную CRC. Если бы они использовали отличное от нуля начальное значение - CRC для всех единиц отличалась бы от всех единиц. Вроде так, если память не изменяет.
  9. STM32.Как перейти с STM32F042xx на stm32F407?

    Из того, что помню: АЦП сильно, УАСПП (USART) - отличается, но на вашей задаче может и не заметите, USB совсем разные, порты одинаковые.
  10. STM32.Как перейти с STM32F042xx на stm32F407?

    Читаю руководство пользователя. Хотя бы разделы про используемую периферию. Если что-то непонятно - несколько раз. Потом пишу программу без всяких чужих библиотек.
  11. А на следующий день (а если это понедельник после тяпницы ) пытаемся вспомнить, на каком номере остановились. Или через год с ужасом узнаем, что у нас по миру гуляет сотня приборов с попарно одинаковыми номерами... Зато способ простой...
  12. Рука дрогнула: предупреждение за нарушение пункта 3.7 Правил форума.
  13. Скорее всего где-то нарушена времянка. Датчик выдает 85 градусов (все единицы) пока не закончит измерение или если не понял команду. Вероятно, вы иногда даете команду на чтение быстрее, чем датчику нужно на измерение или времянка запроса искажается и датчик его не распознает.
  14. Можно, но затраты будут затмевать солнце. И почему M185 стала донором? Может там все беспроводное уже выгорело - тогда нельзя ее использовать в качестве донора.
  15. Вопрос по таймерам.

    Трудно сказать, не зная о каком именно контроллере вы говорите.
  16. Си строки. Мир рухнул...

    Он не приводит. Цитата из стандарта есть по вашей же ссылке из первого сообщения: Да, очень плохо, что вместо 6-го пункта не сделали массив константным, но так уж повелось с самых первых версий.
  17. STM32F407VG + LAN8720 ETH BOARD (Waveshare)

    Это широковещательный запрос, ничего он портить не должен. Адрес вашей платы 192.168.0.1? Она не отвечает на запросы ARP, поэтому комп просто не знает, куда слать все остальное. Разбирайтесь, что ваш пример делает с принятыми пакетами - получает ли он их вообще от LAN8720 и если получает - почему не отвечает. Если у вас LAN8720 тактируется от собственного кварца, то она вполне может работать сама по себе на своих настройках по-умолчанию и вы видите это на светодиодах, а код в процессоре до общения с ней вообще может не доходить. MAC в STM32 начинает работать только после получения тактирования на вход REF_CLK - туда должны приходить 50 МГц от физики или внешнего источника при работе в режиме RMII. Если частоты на этом входе нет (предположим, что все остальное в вашей программе правильно), то надо искать, куда она потерялась. Может перемычку какую надо накинуть или запаять.
  18. Слабо понял, чем сдвижные от раздвижных отличаются. Мне кажется это одно и то же. Второй известный мне тип называется "распашные". Они может и проще, но сдвижные гораздо удобнее. Для сдвижных надо смотреть на "грузоподъемность" привода - насколько тяжелые ворота он может двигать. И выбирать примерно в полтора-два раза больше, чем вес подвижной части ворот (зимой створка двигается с большим усилием, чем летом). Брать запас более двукратного смысла нет - и переплачиваете и сложнее адекватно настроить усилие аварийной остановки из-за более грубой регулировки. А дальше просто выбираете из доступных вариантов исходя из своих понтов. Я три года назад поставил самый дешевый (220 евро + зубчатые рейки за отдельную плату) привод из тех, что были в продаже у конторы, которая делала ворота. Единственная замеченная проблема - после оттепели вода замерзает на пружинке-толкателе концевика. Приходится рукой ее пошевелить (доступ свободный), чтобы лед осыпался или пристроить сверху козырек, чтобы снег туда вообще не попадал (лень).
  19. Значит это не Intel-HEX. Это что-то похожее на него, но не он.
  20. Показывайте исходный код.
  21. Такие строки лучше указывать в файле openocd.cfg, из этого же файла подгружать stlink-v2.cfg и файл описания нужного процессора. Примерно так: source [find interface/stlink-v2.cfg] transport select hla_swd source [find target/stm32f1x.cfg] reset_config none adapter_khz 4000 openocd при запуске ищет этот файл в рабочей директории, при его использовании можно не указвать ничего в строке параметров. Это позволяет легко переносить файл целиком в другой проект, не заморачиваясь с копированием полей в формах.
  22. Вы не поверите, но еще больше людей не знают, что прибавлять надо '0', т.е. символьный литерал ноля. Да, он имеет шестнадцатиричный код 0x30, но тем не менее запись symbol = number + '0'; а еще лучше symbol = '0' + number; гораздо более наглядна, чем прибавление какого-то магического числа.
  23. Ну IAR же вы как-то купили. По сравнению с ценой IARа программатор стоимостью в две бутылки пива - семечки.
  24. В моих устройствах всегда присутствует мой загрузчик с шифрованием. Под него выделяется некоторое количество секторов/страниц в начале памяти. В этой области всегда остается свободное место, в котором я храню серийный номер, версию железа устройства, иногда тип устройства (если одно приложение может загружаться в несколько устройств со схожим функционалом) и тому подобные данные. При производстве в устройство сначала записывается загрузчик, эти данные и приложение для тестирования устройства. Серийный номер при записи загрузчика забит всеми единицами (нулями для STM32Lxx). Это позволяет после окончания тестирования один раз переписать его без стирания страницы/сектора. После тестировния на компе запускается скрипт записи порядкового номера. Этот скрипт берет номер из файла, при помощи утилиты из пакета srecord создает hex с этим номером, шифрует этот hex, добавляя в конец файла команду защитить загрузчик от записи, а процессор - от чтения, отсылает шифрованный файл в процессор через мой загрузчик, если запись прошла удачно - скрипт загружает приложение, увеличивает серийный номер на единицу и пишет обратно в файл. В файл отчета пишет дату, время, серийный номер, номер версии. Программирование сводится к запуску скрипта одним нажатием на клавишу Enter не трогая мышь и не глядя на экран. Раньше (во времена 98 виндовса) в конце пригрывалась веселая мелодию из трех нот (в случает неудачи проигрывалась печальная из двух). Можно было запрограммировать серию устройств вообще ни разу не посмотрев на экран.
  25. Спасибо, уже наелись.