У меня пока очень много тем не снято, как гальваническая развязка, дискретный вход до 30В, дискретный выход с развязкой, драйвер для шим сигнала, обратный диод в индуктивных нагрузках и прочее) до трехфазных штук еще топать и топать)
Олег, а это нормально что в регистре GPIOx_IDR некоторые биты в 0, другие в 1? Хотя я их не пулапил и не пушдаунил. Чуть дальше посмотрел и услышал ответ на мой вопрос) Помехи ловят не подтянутые никуда пины.
Чудеса творятся, переменные которые типа bool в Live Watch находятся по одному и тому же адресу. И по нажатию одной из кнопок (кнопки на разных пинах порта А) меняются значения сразу в обоих переменных, на вторую кнопку реакции нет. В регистре IDR всё происходит как задумано. Если вместо bool использовать int, то все работает как у вас на видео. А если uint8_t то тоже самое что и с bool. В cube idе всё нормально. Что же делать.... Написал код чтоб от каждой кнопки зажигался свой светодиод. Работает как положено. Но опять таки Live Watch врет что от одной кнопки сбрасываются в ноль сразу две переменные. Может что-то в настройка надо менять?(
Та же байда. В чем причина - не могу понять. int, uint16_t и uint32_t отображается нормально, а при bool и uint8_t отображаются под одним адресом. Думаю причина в VS, т.к. камень живой и работает нормально. У меня VS 2019 версия 16.11.32 + VisualGDB 5.6R9 (build 4777)
В целом впечатление положительное, но ти ли из-за невнимательности, то ли уровня владения английским, иногда получаются фальшконцепции, как например с регистром EXTI_IMR, который отвечает не за включение прерывания, как было сказано, а за тип прерывания (maskable or non maskable). Т.ч. всем учащимся советую внимательно перепроверять назначения всех регистров по мануалам.
А если до STM32 сидел на ATmega и исключительно на ассемблере, тогда стоит, всё же начинать изучение STM32 с CMSIS? Просто для меня высокий уровень абстракции, это запутка мозга.
@@Solderingironspb Абстракция бывает разной. Особенно „радует“ когда говорят : скачайте библиотеку и будет вам счастье. А библиотека-то самописная и сам чёрт ногу сломит, чем автор библиотеки руководствовался. Захочешь таймер использовать, а ннннет - он уже занят, но об этом нигде в библиотеке-то и не указано. Так что я за cmsis. В документации разобраться не сложно. А библиотек и высокого уровня абстракций бесконечное множество. Каждый раз нужно сначала изучить библиотеку, а уж потом пользоваться
Хорошие ролики. Вот если бы вы сделали бы курс обучения дебагу, то вообще бы цены бы не было. Практически нигде нет такого, приходится собирать по кускам. Причем не просто вот смотрите, хоп, включил и все прлучилось, а именно курс обучения, с живым кодом и поиском там проблем. По моему непаханная поляна. Взять куб, потом кайл, потом сеггер ембедед. Фриртос вообще отдельная тема. Я сейчас накрутил в учебных целях сущностей, так они все вместе работать не хотял, а по отдельности работают.😂
не знаю будет ли ролик про АЦП, но если будет то сделайте обработку двух каналов, а не одного. Про один у всех есть, а как два запустить приходиться долго искать. В авр к примеру все просто, сработало прерывание по завершению преобразования ацп, зашли туда, считали данные, перестроили на другой канал и все. Спасибо)
Dma тоже в масив int[4] с подсчётом среднего бегущего, или хотя бы 2х последних из каждого АЦП. И вопросик про количество два каналов для АЦП.... Можно ли дип в 2 независимых потока писат в 2[4]?
@@Solderingironspb Когда в прерываии идет важная обработка с точными временными действиями ,то заходить в дополнительное прерывание нарушит точность выполнения первого. А так просто опросил в цикле бит и знаешь про событие.