народ. есть хорошие примеры как в режиме прерываний делать прием байт без задания длины пакета. т.е. когда устройство слейв и не знает зарание что за команда к нему залетит. интересует аспект как лучше перезапускать прием очередного байта. сейчас нужно про spi узнать, но кажется там все одинаково устроено, так что usart и подобное подойдет рисуется что то вроде такого. чтобы успеть перезапустить прием "пока не поздно" вопрос про то можно ли пихать HAL_SPI_Receive_IT() и подобные команды в прерывания

Комментарии: 9

  1. Indr1x

    Используй флаг RXNE, Люк

  2. Dmytro

    Ну вообще обычно берут буфер с запасом, чтобы любая команда в него целиком влезла

    • Aleksandr

      ) ты про буфер в регистрах приемника? в железе то есть? а кто пользовался HAL_TIM_OnePulse_Start() - это запуск обычного таймера для одного прохода? Starts the TIM One Pulse signal generation. что считать - One Pulse signal generation..

      • Dmytro

        За stm сейчас не скажу как точно, но обычно при настройке приёма в DMA, указывается буфер и его размер - то куда складывать входящие данные

        • Aleksandr

          ясно. я пока на уровне прерываний делаю. dma потом.

          • Dmytro

            Ну в общем рекомендую, полезная вещь. С ним обычно проще работать чем с голым spi

            • Aleksandr

              обязательно. я давно замахиваюсь. в любом случае нужно четко понимать логику работы в парадигме прерываний. дма не дма, а это, имхо, база. на ней (в рамках неё) будет строится общение с дма. но это не точно.

              • Dmytro

                Ну окей, тогда вы тоже самое можете сделать программно. Зарезервировать буффер и в него складывать байты один за другим, пока не будет поднят CE (ну или как вы хотите конец посылки различать)

                • Aleksandr

                  это понятно. я так монял дма дает произвольный запас. можно расширить железный буфер до большого. по скорости, ресурсам это как бы буфер из "железных" регистров мк, НО такой который можно пристегнуть куда угодно и расширить до огромных (по сравнению с стандартными регистрами) пределов.

Не нашли ответ?

Вам также может быть интересно

Тогда не вижу конфликта, есть следы установки - нет гарантии. Везде любая гарантия идёт до момента установки, после самостоятельной... Читать далее