linux_rulezz писал(а): Пт июл 03, 2026 01:34:35в мышах на среднюю кнопку, которую нажимаешь куда чаще правой, ставят самый дешёвый микрик! Я уже пару десятков мышей выкинул, у которых отказала эта важная для любой работы кнопка!
Давно известно: Скупой платит дважды.
Вместо того, чтобы купить нормальную мышу, можно конечно "экономить" и покупать их десятками.
Пытаюсь сейчас файлы с CD карты прочитать с помощью библиотеки fatfs через интерфейс CDIO, никак не могу понять в чем проблема, получилось только узнать размер файлов и общий объем флешки, а текст никак не хочет отображаться, я понял если была бы балиберда из разных символов - значит кодировка/распознавание символов не верное, но имена все одинаковые, почему?
Если с счетчиком(энкодером) я могу делать грязь на регистрах, то плешка слишком мудреная со своими 512 битами, не хочется залезать совсем глубоко в битовую передачу.
типа старшие биты удалятся, младшие останутся, ну логично же.
Неявное приведение типов - плохая практика. Где-то оно отработает корректно, а где-то (и это чаще всего) доставит массу проблем. Кроме того, такая запись предполагает, что типы одинаковы, то есть, в Вашем случае стало плохо читаться, так как требуется дополнительная информация об их неравенстве. В общем, так делать нельзя.
Я использовал фукцию snprintf чтоб превратить обычную переменную в массив данных char для вывода на дисплей, но похоже тут опять никакой магии я не нашел, я же конечно не явно прировнял два массива, а через эту функцию.
В топку закинул и думал что оно само там разберется))
Да, я понимаю, читать все символы через эту шляпу...(Я ж на одном списке файлов не остановлюсь), но просто если переткнуть настройки на ASCII не вдаваясь в подробности, то выпадает куча ошибок, пока не понял из-за чего и даже ошибки не читал, надо поковырять в эту сторону как время будет
Гугл неплохо справляется с написанием кода, но я стараюсь так не делать, я не ИИ тренерую, а себя же, а то что юникод я поменять не могу, это из-за того что в кубеМХ проект генерирую по модулям, потом каждый модуль отдельно вставляю себе, вот и ломаются иногда системные библиотеки, очень мерзенькие эти ошибки, по этому я их не смотрел, уже сталкивался, надо генерировать fatfs с нужными мне настройками сразу
Можно я поделюсь немного своими странными мыслями, куда то я уже далеко от изначальной темы ухожу.
Решил помучать новый stm32h743, никак понять не могу как на этом выводить информацию на дисплей, в даташите написано что нужно выключать и включать SPI после обнуления счетчика кадров (кадр - 8 бит в данном случае), но включение и отключение суммарно занимают по времени 1.3-1.5мкс на частотах SPI 60мгц и ЦПУ 240мгц, задержка зависит только от частоты процессора, скорость передачи на stm32h7 равноценна частотам SPI 15мгц на stm32f4 (очень грубо), а от частоты процессора скорость почти не зависит, особенно с ДМА. Если вдруг на эту паузу процессор тратит ресурсы для повторной инициализации SPI, то это вообще треш какой то, как с этим вообще работать то? Указывать максимальное количество кадров и обновлять их по прерыванию?
Если использовать бесконечную передачу с количеством кадров 0 (как на stm32f4), то тогда тактирование никогда не останавливается, это не годится, наверное этот режим для очень крупных передач, явно не для дисплеев.
Своими скудными знаниями вывел самую оптимальную форму для передачи, но это получается что нужно после каждого символа отключать SPI и включать.
Проанализировал аналогичную функцию в хале HAL_SPI_TransmitReceive(); там тот же алгоритм только со чтением еще.
На кой вам этот H743? Это ж всё равно что космический корабль для вас. Там одна только система тактирования и питания чего стоит. Ваш предел - F411, да и то с натяжкой.
И 60 МГц SPI для дисплея - тоже нафик вот? Большие дисплеи в H743 предпочитают работать на LTDC, а не на SPI.
Ифторик писал(а): Сб авг 15, 2026 18:32:10
скорость передачи на stm32h7 равноценна частотам SPI 15мгц на stm32f4 (очень грубо), а от частоты процессора скорость почти не зависит, особенно с ДМА.
Нет, это не так.
Вообще, SPI1, SPI2 и SPI3 по умолчанию тактируются от PLL1, выход Q.
Ифторик писал(а): Сб авг 15, 2026 18:32:10
написано что нужно выключать и включать SPI после обнуления счетчика кадров (кадр - 8 бит в данном случае) ... процессор тратит ресурсы для повторной инициализации SPI,
Знаю про космический корабль, это просто интиресно, но двухядерный уже взять не рискнул, я его целый день просто включить не мог когда впервые в руки взял, оказывается тайминги для памяти нужно указывать взависимости от напряжения питания, ужас.
СПИ потому что пины экономятся и на макетке удобнее. Мне скорость не нужна, дисплей я использую как показометр грязи внутри типа вывода счетчика из таймера, чтоб не мучатся от отладчиком, юартом и прочей шалупенью.
У меня SPI4, согласен, надо было 2 или 3 взять. Я имел ввиду задержка включения SPI зависит от частоты процессора, не от частоты шины APB2, это плохо. Такой мощный проц, а буксует на включении периферии. Я практически наизусть выучил главу в референсмануале с транзакциями, да, там не обязательно включать и выключать SPI, а только рекомендуется, по этому можно попробовать просто флаги очищать и вписывать кадры повторно