реклама на сайте
подробности

 
 
> STM32F4 USART посылка данных, Не отсылаются все байты
BlackOps
сообщение May 26 2013, 18:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



вот моя настройка УСАРТ:
CODE
uint32_t config_usart3(void)
{

//=============================================================================
// USART3 Related configuration
//=============================================================================
// enable clock
RCC->APB1ENR |= RCC_APB1ENR_USART3EN;


// 1) Setting UE, amd M bits
USART3-> CR1 |= 0x2000; // UE = 1

// 2) Programming number of stop bits if needed


// 3) Enable DMA if needed


// 4) set the Baud Rate
// BAUD = fck / ( 8 * (2 - OVER8) * USARTDIV )
// fck = 42MHz,
// OVER8 = 0
// Choose BAUD = 115200
// then: USARTDIV = fck / ( 8 * (2 -OVER8) * BAUD = 22.75
// BRR = (22 << 4) | ( 0.75 * 16) = 364,
// or: BRR = fck / BAUD = 42MHz / 115200 = 364
USART3->BRR = 364;


// enable transmitter
USART3->CR1 |= USART_CR1_TE;

// enable receiver
USART3->CR1 |= USART_CR1_RE;

return 0;
}



а вот собственно код отсылки:
CODE
uint8_t mem_read_gyro(USART_TypeDef *USART_ID )
{

int i=0; // loop var


//send read buffer to USART
for(i=0;i<=17281024;i++)
{
// check if TXE bit is set
while((!(USART_ID->SR & USART_SR_TXE)) );


USART_ID->DR = 0x5d;//mem_gyro_buf[i]; // sending a byte
// check if TC bit is set
while((!(USART_ID->SR & USART_SR_TC)) );

}



return 0;
}



как видите проверяю TC и TXE, цикл ожидания бесконечный, так что если с битами была бы проблема код застрял бы на цикле. Но в моем случае вся функция исполняыется в коде успешно, но когда проверяю на компе то программа регистрирует меньшее количество байт например: 15 547 966(столько же байт и вижу в бинарном файле), а должно 17 281 024 байт.

причем интерестно то, что количество полученных байт постоянно разное, но всегда меньше чем 17 281 024 байт.

в чем тут еще может быть проблема? вот настройки терминала:
Baud:115200
DataSize: 8
parity: none
Handshake: off
mode: free



что тут еще может быть нетак?

Сообщение отредактировал IgorKossak - May 26 2013, 18:27
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BlackOps
сообщение May 27 2013, 06:11
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



я сейчас сделал именно так как вы сказали, соеденил ножки 2-3, затем я создал один файл с количеством 600 001 байт.

и в терминальной программе (правда без режима CTS/RTS, но на той же скорости 115200) прогнал этот файл, а взамен получил 593 857 байт, это делает гдето 6 144 байт разницу.

дело в том что когда посылал данные с стм32 то я получал когда как, иногда все 600 001 а иногда:
591 809
593 857 (как в случае с тестом)
597 953
итд.

т.е. выходит так и есть? причина не в моем коде или каком то неверном методе отправки данных с стм32, а просто то что буфер компа/переходника переполнен?

мне просто нужно много байт (32МБайт примерно) отослать на комп, то что долго ничего, главное чтобы каждый байт до единого пришел.

какой тогда метод будет относительно надежен для отправки большого количества данных с стм32 по УСАРТУ?
например отправлять 256 байт и ждать? если да то сколько времени примерно ждать надо (так чтобы на многих компах работало)?


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post
DmitryM
сообщение May 27 2013, 06:20
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(BlackOps @ May 27 2013, 10:11) *
я сейчас сделал именно так как вы сказали, соединил ножки 2-3, затем я создал один файл с количеством 600 001 байт.
и в терминальной программе (правда без режима CTS/RTS, но на той же скорости 115200) прогнал этот файл, а взамен получил 593 857 байт, это делает гдето 6 144 байт разницу.

А с контролем RTS/CTS такой же результат? Или Xon/Xoff?
Цитата
какой тогда метод будет относительно надежен для отправки большого количества данных с стм32 по УСАРТУ?
например отправлять 256 байт и ждать? если да то сколько времени примерно ждать надо (так чтобы на многих компах работало)?

Без контроля потока будет ненадежно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BlackOps   STM32F4 USART посылка данных   May 26 2013, 18:04
- - Flexz   А что именно на принимающей стороне? какая ОС, com...   May 26 2013, 18:22
- - BlackOps   вот кабель который я использую, USB-FTDI cable : ...   May 26 2013, 19:01
|- - mdmitry   Цитата(BlackOps @ May 26 2013, 23:01) вот...   May 27 2013, 16:52
- - BlackOps   я решил проверить какое минимальное количество бай...   May 26 2013, 21:00
- - Genadi Zawidowski   Попробуйте мою терминалку. Настройки - Alt+F3. Нач...   May 26 2013, 21:25
- - BlackOps   не могу запустить программу Вашу, говорит: telnet3...   May 26 2013, 21:47
- - Genadi Zawidowski   Похоже было обе 64-х битных версии... Скомпилирова...   May 26 2013, 21:55
- - BlackOps   значок поменялся, появилась иконка у программы, но...   May 26 2013, 22:13
- - BlackOps   я просто не понимаю в чем еще там может быть пробл...   May 27 2013, 02:27
- - BlackOps   я например понимаю если бы это был прием данных бо...   May 27 2013, 05:27
- - Golikov A.   буфер со стороны компа где то килобайта 2. Какие б...   May 27 2013, 05:46
- - BlackOps   замкнул контрольные пины тоже, проверил, с контрол...   May 27 2013, 06:36
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 10:36) зам...   May 27 2013, 07:33
|- - ar__systems   Цитата(BlackOps @ May 27 2013, 01:36) зам...   Jun 8 2013, 12:17
- - BlackOps   Xon/Xoff режим вообще делает так что программа тер...   May 27 2013, 07:43
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 11:43) Xon...   May 27 2013, 09:34
- - Golikov A.   Погодите погодите! когда вы замыкаете контрол...   May 27 2013, 10:02
|- - BlackOps   Цитата(Golikov A. @ May 27 2013, 15:02) П...   May 27 2013, 10:13
- - BlackOps   еще такой вопрос, для того чтоб стм32 использовал ...   May 27 2013, 10:05
- - Golikov A.   есть хороший терминал, называется com terrminal v1...   May 27 2013, 10:07
- - Golikov A.   А... прошу прощения, я думал у вас так и сделано, ...   May 27 2013, 10:18
- - BlackOps   нет.., у меня плата Stm32Discovery, и от нее прово...   May 27 2013, 10:21
- - Golikov A.   Ножки РТС/CTR это ножки уровня прибора. То есть эт...   May 27 2013, 10:23
- - BlackOps   так вот ворос тогда: в моем случае ФТДИ если набир...   May 27 2013, 10:24
- - Golikov A.   Все тогда я все правильно понял.... странно конечн...   May 27 2013, 10:27
- - BlackOps   странно... вот это например из мануала СТМ32 Цитат...   May 27 2013, 10:27
- - Golikov A.   если бы ФТДИ был конечным прибором, то да. Но фтди...   May 27 2013, 10:32
- - BlackOps   а как насчет ругих решений которые нормально работ...   May 27 2013, 10:39
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 14:39) исх...   May 27 2013, 16:54
- - Golikov A.   У меня всегда УАРТ был с протоколом. Обычно РС485+...   May 27 2013, 10:57
- - BlackOps   а вот и то как ФТДИ это описывает: http://www.ftdi...   May 27 2013, 17:34
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 21:34) а в...   May 27 2013, 17:41
|- - vptr   Цитата(BlackOps @ May 27 2013, 20:34) Так...   May 28 2013, 11:00
- - Golikov A.   странно это вообще... неужели если это переходник...   May 28 2013, 05:58
- - Сергей Борщ   QUOTE (BlackOps @ May 27 2013, 13:05) еще...   May 28 2013, 06:25
- - Dopler   Удивительные вещи народ рассказывает про компьютер...   Jun 7 2013, 20:01
|- - Golikov A.   Цитата(Dopler @ Jun 8 2013, 00:01) Удивит...   Jun 9 2013, 18:51
|- - vptr   Цитата(Dopler @ Jun 8 2013, 00:01) Удивит...   Jun 10 2013, 11:53
- - Golikov A.   может у них 2090-ые, параллельная реальность... в...   Jun 10 2013, 17:13
|- - vptr   Цитата(Golikov A. @ Jun 10 2013, 21:13) м...   Jun 10 2013, 20:32
||- - Сергей Борщ   QUOTE (vptr @ Jun 10 2013, 23:32) максима...   Jun 11 2013, 06:07
|- - jcxz   Цитата(Golikov A. @ Jun 10 2013, 23:13) м...   Jun 11 2013, 04:20
- - Golikov A.   через драйвер или как виртуальный ком порт? А у м...   Jun 11 2013, 05:16
|- - jcxz   Цитата(Golikov A. @ Jun 11 2013, 11:16) ч...   Jun 11 2013, 08:20
||- - Golikov A.   Цитата(jcxz @ Jun 11 2013, 12:20) Драйвер...   Jun 11 2013, 08:58
|- - Dopler   Цитата(Golikov A. @ Jun 11 2013, 09:16) ч...   Jun 12 2013, 12:40
|- - jcxz   Цитата(Dopler @ Jun 12 2013, 18:40) COM-п...   Jun 12 2013, 17:36
|- - Dopler   Цитата(jcxz @ Jun 12 2013, 21:36) Здорово...   Jun 12 2013, 19:10
|- - jcxz   Цитата(Dopler @ Jun 13 2013, 01:10) ADUM4...   Jun 13 2013, 07:14
- - Golikov A.   езернет оптику! 100% развязка от всего) Пра...   Jun 12 2013, 20:45
|- - Dopler   Цитата(Golikov A. @ Jun 13 2013, 00:45) х...   Jun 13 2013, 08:01
- - Golikov A.   ну я бы говорил прикинуться Масс Тораже - то есть...   Jun 13 2013, 12:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016