Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

Непрочитано 08.03.2014, 02:29  
hubble
Прописка
 
Регистрация: 04.08.2006
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
hubble на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

zgenius, большое спасибо. Помогли мне продвинуться еще на одну ступеньку в изучении STM32 (конкретно - DMA). Метод опробовал. Действительно удобно. Но принципиального различия между этим способом (использование двух буферов) и способом половинного заполнения буфера не увидел (поправьте меня, если не прав). Разве только что, в Вашем случае можно применить и два, и три, и более буферов.
Но вопрос-то все равно остался не решенным. Как прочитать последние байты в полученной строке, если их количество меньше длины буфера? Значит, прерывание DMA по факту полного завершения передачи не наступит. И выполнить обработку полученных данных не выйдет.
Реклама:

Последний раз редактировалось hubble; 08.03.2014 в 02:36.
hubble вне форума  
Непрочитано 08.03.2014, 07:30  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

Сообщение от hubble Посмотреть сообщение
Но вопрос-то все равно остался не решенным
Вам уже назвали единственный способ в 5-м ответе
Вы хоть читаете, что вам пишут?
niXto вне форума  
Непрочитано 08.03.2014, 13:26  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

Вот парочка способов без использования прерывания USART.
4. Пакетная передача. Источник данных должен знать, что длина буфера 8 байт, например. Если количество байт в сообщении меньше, то источник просто добивает сообщение незначищими байтами до полной длины, например добавляет несколько 0xFF в конец сообщения до достижения 8 байт. Тут так же, как и в случае со спецсимволом-окончанием строки, уменьшается диапазон возможных значений передаваемых данных: мы жертвуем одним значением, зато длина пакета всегда равна 8.
5. Передача длины сообщения в первом байте. Делаем так. Сначала настраиваем ДМА на приём 1 байта. По прерыванию ТС реинициализируем ДМА: полученный байт пишем в количество байтов ДМА и снова запускаем. При получении второго прерывания ТС, уже работаем с полученными данными.
Yurkin2014 вне форума  
Непрочитано 08.03.2014, 14:43  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

какие только костыли не придумают а все из-за какого то пи***са, который нормальный 16550 не поставил на кристалл

PS фирменный костыль от ST:
http://www.st.com/st-web-ui/static/a...CD00256689.pdf

Последний раз редактировалось Hives; 08.03.2014 в 14:51.
Hives вне форума  
Непрочитано 08.03.2014, 16:15  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

Сообщение от Yurkin2014 Посмотреть сообщение
Передача длины сообщения в первом байте.
Вот это самое никогда не пользуйте. Получите кривой байт и будете потом искать начало следующего пакета ... Посмотрите как пользуют последовательную связь разные протоколы - DCON, NMEA, MODBUS или канальный уровень X.25. Все уже давно придумано и используется десятилетиями. Что за радость что то выдумывать, вместо того что б чуток поучится..
Boba_spb вне форума  
Непрочитано 08.03.2014, 17:24  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

Сообщение от Hives Посмотреть сообщение
а все из-за какого то пи***са, который нормальный 16550 не поставил на кристалл
Нормальный 16550 там есть, во всех стм32 - называется "DMA"
niXto вне форума  
Непрочитано 08.03.2014, 19:35  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

ну, у каждого свое представление о нормальности :O
Hives вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:03.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.