Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 21 номера


1. Программирование на языке С на примере микроконтроллера STM32F407VGT6.  Работа с UART. Передача данных с помощью DMA. Режим двойного буфера.

Рассмотрим пример программы с использованием двойного буфера. По сравнению с предыдущей программой (номер 20 статья 7) сделаем следующие изменения:

Результат работы программы:

«

UART3 TX DMA Double buffer mode test programm start

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

UART3 TX DMA Double buffer mode test programm end»        

Особенностями работы являются:

 

2. Программирование на языке С на примере микроконтроллера STM32F407VGT6.  Работа с UART. Передача данных с помощью DMA. Программное переключение буферов.

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

                Рассмотрим пример программного переключения передаваемых буферов. Сделаем следующие настройки:

Результат работы программы:

«

UART3 TX DMA Soft Double buffer mode test programm start

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

DMA transfer complete, buffer - 0, DMA1_Stream3->CR = 0

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

DMA transfer complete, buffer - 1, DMA1_Stream3->CR = 0

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

DMA transfer complete, buffer - 0, DMA1_Stream3->CR = 0

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

UART3 TX DMA Soft Double buffer mode test programm end»


В избранное