Я пошел путем дефайнов. Обозначаю каждому пину свое имя и состояние, а ему уже соотношу обращение к пинам порта. Однако, как было выложено здесь же, получается обработка такая выльется в хренову тучу ассемблерных конструкций, ибо все пины по отдельности ставятся и снимаются... Типа такого:
Добавлено after 8 minutes 39 seconds: И, по моему, первый вариант лучше, т.к. он действительно позволяет назначать любые пины любых портов, а второй способ все же собирает в пару портов эти пины...
Добавлено after 37 minutes 7 seconds: Почему я эту конструкцию не могу сразу затащить как условие в if?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
P.S. За эти "stroka" и "stolbets" и прочее подобное хочется сильно бить по голове учебником английского. Почему не "line" или "row"?
Точно! А я думал, как в транслите написать букву Ц! А серьезнее, то так мне было проще, типа я художник, я так вижу. Изначально хотел написать ROW COLUMN, но я в них постоянно путаюсь, кто из них строка, а кто столбец, еще с Ехеля начиная. Ну, не англичанин я...
Добавлено after 3 minutes 25 seconds:
Код:
#define CONCAT(x,y) x ## y
Я вообще думал, что это строка к С++ относится... Ни разу с такой не встречался. Пойду почитаю за конкатенацию. А вот именно все скобки у макроса и не понятны все равно. Вот эти:
В частности интересует во что компилируются инкремент/декремент обычных переменных и указателей. Насколько я помню, в AVR'ках инкремент/декремент обычной переменной подразумевал: 1. Загрузку значения из оперативки в регистр 2. Инкремент значения в регистре одной командой 3. Выгрузку значения обратно в оперативку Тобишь процесс не атомарен. А как это устроено в ARM'ках? Тут тоже инкремент/декремент осуществляется через регистры или как? И что насчёт адресной арифметики? Есть какие то специальные инкременты на степени двойки? Или это реализуется уже обычными арифметическими командами?
И ещё вопрос. Насколько эффективно компиляторы реализует остаток от деления? Со степенями двойки всё должно быть просто, а с произвольными числами неизвестными на этапе компиляции? Условно, что эффективнее?
Код:
a += b; if (a >= maxValue) a -= maxValue;
// или обойтись без if'а и просто взять остаток от деления? a += b; a %= maxValue;
PS если где-то это уже разжёвано, буду благодарен за ссылочку.
Satarych, вместо кучи дурацких вопросов написал бы интересующий тебя код и посмотрел во что он компилируется. Лучше один раз увидеть, чем сто раз услышать.
Здравствуйте! Подскажите пожалуйста, мне нужно подключить SDRAM и дисплей 2.4 дюйма, вроде бы на SPFD5408, если верить описанию к покупке) Возможно вместо SDRAM остановлюсь на SRAM. Хочу заказать МК, но не могу понять какой лучше. Допустим серия 429 имеет како то механизм LCD-TFT. Это поможет для работы с данным дисплеем? Прочел, что поможет FSMC, но для SRAM тоже нужно FSMC, на 407 серии он есть, сколько там можно устройств подключить? Там речь про какие то bank1 и 2 это омжно два независимых устройства подключать? Но для SDRAM нужно FMC которое в 427, 429 моделях. Но там я не вижу FSMC который подходит для дисплея)) Но есть, как я писал выше LCD-TFT.
Вообщем запутался, уже заказал 405 а там вообще не фига нет, хочу заказать новый, но теперь хочу посоветоваться))
Вообщем мне бы иметь возможность подключить одновременно LCD и SRAM/SDRAM. но не супер дорого)) Какой МК можно взять?
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Вс мар 24, 2019 19:40:58
Опытный кот
Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 744 Откуда: Караганда, Казахстан
Рейтинг сообщения:1
Вообще-то, демоплата от ST, а именно - STM32F429I-DISCO имеет на борту и SDRAM, и дисплейчик 2.6". Камушек там, естественно, 429I, SDRAM 8M, и, на закуску, ST-Link...
Чтобы потренироваться - самое то!
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Чт мар 28, 2019 23:53:58
Первый раз сказал Мяу!
Зарегистрирован: Чт мар 28, 2019 23:41:10 Сообщений: 24
Рейтинг сообщения:0
Народ, подскажите, уже голову сломал. Начал изучение с STM32F0P30. Попалась китайская девайсина с этим МК, реле, входом и светодиодом. Устройство с Модбас интерфейсом. Не понравилась логика работы, решил написать свой код. Использую Cube. Закопался c RS485. В устройстве используется преобразователь UART-RS485 с переключателем DE. Всё вроде бы оформил как надо, пытаюсь отправлять наружу текст. Всё получилось, вижу его на компе в гипртерминале. Решил проверить работу переключателя DE и тут непонятка. Использую HAL_GPIO_WritePin (GPIOA, GPIO_PIN_0, GPIO_PIN_SET), текст проходит, меняю на GPIO_PIN_RESET и всё равно вижу в Гипертерминале мой текст. По идее DE должен включать/отключать передачу... Разве нет?
Sergeba , в большинстве F0 есть как и аппаратное управление DE так и аппаратная поддержка модбас. калокуб и софтовое ногодрочерство попросту не нужны, нужно начать читать и думать.
Sergeba , в большинстве F0 есть как и аппаратное управление DE так и аппаратная поддержка модбас.
Я правильно понял, что даже в случае, если я софтово дёргаю ногу, на которой висит DE+RE и запрещаю передачу, "аппаратной поддержке" пофиг и она пропускает пакет?
А калокуб приходится использовать т.к. удобно для старта - накидал основу - и он всё нужное соберёт для инициализации и т.п.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения