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

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

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

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

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

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


 
Опции темы
Непрочитано 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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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.RU
 
Регистрация: 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.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM32F4xx. Прерывания Half Transfer, Transfer Complete. Не понятные моменты

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

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

Закладки
Опции темы

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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot