Alex_Golubev 0 8 апреля, 2021 Опубликовано 8 апреля, 2021 · Жалоба Думаю как лучше сделать. Охота чтобы все было аппаратное на внутренней периферии. Есть устройство мастер (одно) есть устройства слейф (много). Протокол между ними модбас RTU. Мастер stm32h743. Алгоритм следующий для мастера: 1. формирования посылки для передачи с расчетом контрольной суммы. 2. передача через usart по средствам DMA. 3. получения пакета с подчинённого или выход по таймауту на шаг 2. Повторение 2 раза. 4. если получил, проверка контрольной суммы, если контрольная сумма не сошлась то передача еще раз (шаг 2.) если снова не сошлась или нет ответа то переход на шаг 1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 8 апреля, 2021 Опубликовано 8 апреля, 2021 · Жалоба 1 час назад, Alex_Golubev сказал: 2. передача через usart по средствам DMA. Это как? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_Golubev 0 8 апреля, 2021 Опубликовано 8 апреля, 2021 · Жалоба передача данных озу ---> dma ---> usart. вроде все ясно ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 8 апреля, 2021 Опубликовано 8 апреля, 2021 · Жалоба 2 minutes ago, Alex_Golubev said: передача данных озу ---> dma ---> usart. вроде все ясно ? В смысле даже прерываний не использовать? Все на чайнинге ивентов? Идея неплохая, только не забудьте про когерентность памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться