Довольно часто на форумах я вижу вопросы типа: "… я использую такую-то функцию HAL, она выдает не то… что делать?". Вот и ответ… почитать исходные документы, почитать про регистры… :)
Совершенно верно. Все дефайны, определяющие доступ к железу, находятся в отдельном файле. :) И на мой взгляд, макроопределение и вызов функции, все таки разные вещи… :)
Проекты бывают разные. В моих проектах главная нагрузка на проц — это графический цветной интерфейс. F7 использую, прежде всего, из-за приличного размера памяти и неплохого быстродействия и очень жду H7 ;). На нем смогу увеличить разрешение экрана. RTC, Fat, USB Host & Device давно реализованы и не вызывают никаких проблем. Аппаратный CRC16 не получилось использовать. написал свой для Modbus.
Спасибо за развернутый комментарий. :)
Для управления пинами обычно использую такой дефайн:
#define Work_Led_ON GPIOB->BSRR = GPIO_BSRR_BS_2; //Port B Set bit 2
#define Work_Led_OFF GPIOB->BSRR = GPIO_BSRR_BR_2; //Port B Reset bit 2
Вы правы — ошибочка вышла :) конечно 32 слова. В HI-1553 кодер и декодер манчестера и контроль четности. Прерывания по таймеру выдерживаются достаточно строго. Это из рабочего, управление высоковольтным выпрямителем.
Запросы по приемо-передатчикам были разосланы по нескольким компаниям. Именно этот оказался за приемлемые деньги и сроки. Вообще на этой плате приемо-передатчик самый дорогой компонент. :)
Считывание принятого слова начинается по сигналу VALID WORD, который поднимает микросхема декодера. Вот как сказано в ДШ: A high on VALID WORD output indicates a successful reception of a word without any Manchester or parity errors. Если есть ошибки, значит не будет сигнала и, соответственно, прерывания на обработку слова.
if (Block_mode)
{
Power_Relay_OFF
}
Вот пример из реальной программы…
Спасибо за развернутый комментарий. :)
#define Work_Led_ON GPIOB->BSRR = GPIO_BSRR_BS_2; //Port B Set bit 2
#define Work_Led_OFF GPIOB->BSRR = GPIO_BSRR_BR_2; //Port B Reset bit 2
Нет, конечно. :) Только тот функционал, который был нужен мне.
По мне, протокол по ГОСТ Р 52070-2003 самый дурацкий, с которым приходилось сталкиваться.
Полностью согласен. :)