Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/17: Рейтинг темы: голосов - 17, средняя оценка - 4.71
zhytimkov
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
1

Проблемы с приемом данных com порт stm32

27.04.2016, 15:09. Просмотров 3064. Ответов 6
Метки нет (Все метки)

Привет.
Возникла проблема с приемом данных через som порт stm32f429i. Проблема заключается в приеме больше 64 байт данных. Вот если передавать менее 64 байт то все в норме все данные принимаются корректно. Usb HS (вроде как должен поддерживать прием 512 байт и в сгенерированном коде cuba ) стоит
#define CDC_DATA_HS_MAX_PACKET_SIZE 512 /* Endpoint IN & OUT Packet size */
Буфер на прием сделал 512 байт #define APP_RX_DATA_SIZE 512. Почему не корректно принимает пакет больше 64 байт?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2016, 15:09
Ответы с готовыми решениями:

Виртуальный COM-порт на STM32, скорость обмена.
Всем привет. Прошу помощи :) Экспериментирую с USB - CDC-класс, стоит задача...

Гуру Си, подскажите по записи в порт STM32
Волею судеб вышло так, что 16-ти битное слово не могу выводить в один порт,...

насколько устойчив виртуальный СОМ-порт из STM32?
Т.е. STM32 подключаем по USB к компу как USB Device, Virtual Port Com. Типовые...

проблемы c flash у STM32
Здравствуйте. Возникла проблема с сектором флеши STM32F407VG. Раньше в сектор...

STM32 Проблемы с прошивкой
У меня возникла такая проблема: я прошиваю Nucleo STM32 f401re, все работает, я...

6
zhytimkov
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
28.04.2016, 06:15 2
Продолжая дальнейшее изучение проблемы наткнулся на сброс длины принимаемого пакета. В сгенерированом кубе коде есть строчка приема данных
Код
static int8_t CDC_Receive_HS (uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 11 */
USBD_CDC_ReceivePacket(hUsbDevice_1);  //добавляем сами
return (USBD_OK);
/* USER CODE END 11 */
}
Указатель uint32_t *Len сбрасывается на нулевой адрес массива после приема 64 байт и начинает перезаписывать данные в массиве UserRxBufferHS[APP_RX_DATA_SIZE]. В итоги мы получаем остаток от наших данных. Почему *Len сбрасывается на адрес первого элемента массива ? Может кто уже решал данную проблему? Использую плату stm32f429i-disco
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
28.04.2016, 20:02 3
Вроде-бы, пакет обмена 64 байта. Зачем вы сделали буфер 512? Верните на 64.
0
zhytimkov
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
28.04.2016, 21:25 4
А если я хочу принять больше 64 байт то как тогда быть ?
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
28.04.2016, 23:21 5
Принимайте два пакета и склеивайте их в самом MCU.
0
zhytimkov
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
29.04.2016, 16:17 6
Да вот и проблема в том, что у меня пакет больше 64 байт.
0
zhytimkov
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
01.05.2016, 05:38 7
В крации опешу проблему почему не хватает 64 байт. Раньше стоял другой процессор (avr сейчас stm) и организация связи между ком. и устройством осуществлялась по средством виртуального som порта последней был сделал на микросхеме ft232. Передача осуществлялась не пакетами данных (как должно быть) а не прерывно. Все данные со стороны ком. (host) складывались в массив (4096 байт) и выдавались через som порт. При условие что раньше стоял мостик ft232 все как то работало. А вот как сейчас принять эти 4096 байт посредством виртуального ком порта stm32 не понятно.
0
01.05.2016, 05:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2016, 05:38

STM32 Проблемы с ADC (АЦП)
Здравствуйте, подскажите пожалуйста где ошибка. Была написана простая программа...

BootLoader stm32, проблемы с переходами
Обьясните, пожалуйста, такие моменты в написании кода загрузчика, как переход...

Проблемы с CMake сборкой для STM32
Добрый день. Некоторое время вожусь с stm32f107vc. Настроил istypsi, дебаггер....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru