|
STM32F4 USART посылка данных, Не отсылаются все байты |
|
|
|
May 26 2013, 18:04
|

Знающий
   
Группа: Свой
Сообщений: 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] - для короткого!!!
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
|
 |
Ответов
|
May 27 2013, 06:11
|

Знающий
   
Группа: Свой
Сообщений: 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 байт и ждать? если да то сколько времени примерно ждать надо (так чтобы на многих компах работало)?
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
|
May 27 2013, 06:20
|
Знающий
   
Группа: Свой
Сообщений: 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 байт и ждать? если да то сколько времени примерно ждать надо (так чтобы на многих компах работало)? Без контроля потока будет ненадежно.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|