|
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, 17:34
|

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

|
а вот и то как ФТДИ это описывает: http://www.ftdichip.com/Support/FAQs.htm#HwGen3CTS/RTS у них впрямь не работает как положено! а именно: Цитата "If CTS# is logic 1 it is indicating the external device cannot accept motre data. the FTxxx will stop transmitting within 0~3 characters, depending on what is in the buffer.
This potential 3 character overrun does occasionally present problems. Customers shoud be made aware the FTxxx is a USB device and not a "normal" RS232 device as seen on a PC. As such the device operates on a packet basis as opposed to a byte basis." это думаю все и обЪясняет, правда данная ситуация описывала вариант где ФТДИ отправлял данные прибору, но думаю аналогичное тогда будет верно и в обратном случае. Побродил по форумам Silabs, увидел аналогичную тему тоже, и аналогичное описание проблемы с CP2102. Так что, мне кажется тут два пути: 1) усложнить отправку и протоколизировать как вы сказали 2) просто добавить задержку после отправки скажем каждых 256 байт с СТМ32, в конце концов все эти побочные эффекты из-за того что переходник не может принять быстрый поток байт, т.е. просто сделать поток медленным должно сработать.
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
|
May 27 2013, 17:41
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(BlackOps @ May 27 2013, 21:34)  Не сходится про отправку If RTS# is logic 0 it is indicating the FTxxx device can accept more data on the RXD pin. If RTS# is logic 1 it is indicating the FTxxx device cannot accept more data. RTS# changes state when the chip buffer reaches its last 32 bytes of space to allow time for the external device to stop sending data to the FTxxx device. Цитата 1) усложнить отправку и протоколизировать как вы сказали Вот это надежнее
|
|
|
|
Сообщений в этой теме
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:11 DmitryM Цитата(BlackOps @ May 27 2013, 10:11) я с... May 27 2013, 06:20 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 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
|
|
|