eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2017-01-15 10:10 am
Entry tags:

USART через DMA на STM32F042

Добавил в коллекцию еще один сниппет.
Казалось бы, в USART через DMA ничего особенного нет, но по сравнению с STM32F103 у нулевой серии есть замечательное прерывание USART: "character match".
В этом примере DMA организует прием-передачу данных (причем на прием стоит двойная буферизция), а прерывание character match позволяет определить, было ли окончание строки. Если было, то выставляется соответствующий флаг и буфера меняются местами; если же не было, то при переполнении буфера DMA прием возобновляется в тот же буфер и выставляется флаг overflow.
Принятая строка возвращается обратно "задом наперед", а каждые ~5 секунд выводится еще и надпись "dummy text". Например, если написать
Привет
Аргентина манит негра
1234567
на выходе получим:
тевирп
dummy text
арген тинам анитнегрА
dummy text
7654321

[identity profile] mbr.livejournal.com 2017-01-15 08:42 pm (UTC)(link)
Причем тут gsm и gps? Я что тебе за всех говнокодеров должен отвечать? Я тебе привел два промышленных стандарта, где идет разбор по таймингам. Или обмен с китайским gps стал промышленным стандартом?

[identity profile] eddy-em.livejournal.com 2017-01-15 08:45 pm (UTC)(link)
На кой черт мне твой модбас сдался? Если мне нужно будет что-то "промышленное" соединять, я как минимум CAN использую (а лучше не заморачиваться, и вообще ethernet), а USART — он как раз для связи со всякими китайскими ширпотребными модулями. Как, впрочем, и всякие I2C, SPI и им подобная шелуха.

[identity profile] mbr.livejournal.com 2017-01-15 08:47 pm (UTC)(link)
> Ты где-нибудь такую реализацию взаимодействия по USART видел? Покажи!

Показал? Еще вопросы будут?