All streams
Search
Write a publication
Pull to refresh
2
0
Максим @mctMaks

инженер-программист

Send message
в своё время старший брат научил играть в эту игру, называл её «матрица». наверно, из схожести с падающими символами фильма)
к короткому решению я шел долго… но когда его увидел, даже растроился. как-то оно очевидно при должном внимании
в принципе наверно можно и так сказать.
но опять же, смотрите. Вот выставили мы например значение 00 в регистр. Это же не означает, что МК не сможет и не позволит вывести через данный пин сигнал в 40МГц. Меандр будет на выходе, но очень уж близкий к синусу. Если Вам нужно работать с цифровым интерфейсом, то это проблема. Вот и получается, что это не сколько частота работы (максимальная\разрешенная), сколько признак того насколько меандр выведенный с данного пина будет меандром.

я надеюсь Вы понимаете что я не пытаюсь придираться)
и снова ошибка. не скорость переключения, а именно время нарастания фронта (то есть его крутизну). За примером в даташит, а именно поискать таблицу "I/O AC characteristics" и посмотреть там строки «Output rise and fall time».
Из-за своего названия этот регистр много путаницы вносит в понимание работы такого просто модуля, как GPIO.

как правило заголовочники можно вытащить из IDE, которая пользуется отдельными паками для вендоров (Keil/Segger Embedded Studio например), ну или выкачивая монструозные библиотеки HAL\LL на все семейство.
моё почтенье после прочтения, было интересно и познавательно. но позволю себе пару вставить пару комментариев:
Без комментариев тут не обойтись. Хотя код всего-то устанавливает скорость работы порта GPIOA.0 в значение 40 Мгц

тут не совсем так, скорее даже совсем не так. Порт как работал со «скоростью» шины AHB так и будет работать. Регистр OSPEEDR определяет скорость нарастания фронта на выводе настроенном как выход. Кстати, в более новых поделиях этой фирмы, они заменили конкретные цифры на абстракции вида VeryLow\Low\Medium\High или их вариации.

Но, как я уже говорил выше, не все производители заботятся о своих потребителях, поэтому не у всех в файле SVD описаны перечисления, из-за этого для ST микроконтроллеров все перечисления, после генерации выглядят примерно так

я наверно Вас удивлю сейчас, но для некоторых МК st не то что не описали перечисления, они некоторые периферийные модули забыли описать. Так что полностью автоматизировать вряд ли получится. Для примера реальная история с stm32l4r4zi и попыткой найти DMAMUX в svd файле:

с момента публикации прошло полгода, исправления так и не было… за
это время были найдены ещё несколько ошибок в этом файле.
12 ...
21

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Date of birth
Registered
Activity