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

 
 
> STMF207VG + HAL +CDC (STM32CubeMX), с ошибками передаёт если посылаю 1,2 или 3 байта, 4 и более - работает
Builder
сообщение Sep 29 2015, 06:52
Сообщение #1


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Тестирую проект полученный от STM32CubeMX для STMF207VG.
Использую демоброду TE-STM32F207
Как-то странно работает.
Проблему с замиранием передачи нашел как решить - в ф-ии USBD_CDC_TransmitPacket переместить код hcdc->TxState = 1; до вызова USBD_LL_Transmit.
Вроде заработало, но споткнулся на том, что если за раз передаю меньше 4-х байт, то передается бред - каша из ранее переданных байт.
Под отладчиком нашел место где данные пишутся в регистры - всё пишется правильно (ф-я USB_WritePacket).
Такое впечатление что что-то с инициализацией, но с ходу ошибки не вижу.
Если передаю 4 и более байт за раз - проблем вроде пока не вижу.
Кто-то с таким сталкивался?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smalcom
сообщение Sep 29 2015, 20:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



4 байта? подозрительно похоже на int, Это не может быть связано где-то с выравниванием данных?
Go to the top of the page
 
+Quote Post
Builder
сообщение Sep 29 2015, 21:02
Сообщение #3


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(smalcom @ Sep 29 2015, 23:10) *
4 байта? подозрительно похоже на int, Это не может быть связано где-то с выравниванием данных?

не похоже - нашел место, где идет запись в регистр. На первый взгляд всё читается из буфера и пишется в регистр правильно.
Похоже или какая-то особенность реализации у STM32CubeMX, которую не учитываю или ошибка в инициализации железа.
Go to the top of the page
 
+Quote Post
Builder
сообщение Oct 3 2015, 22:57
Сообщение #4


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



В общем плюнул на код, который с генерировал CubeMX, взял для теста пример - с ходу заработал.
На первый взгляд библиотеки/функции используются те-же самые.
Как будет время - сравню, чем отличаются/где ошибка.

Добавлю, кажется нашел. Не нравились мои настройки частот в функции SystemClock_Config.
Перенес настройки из работающего примера в неработающий - вроде всё заработало.
А CubeMX на мои совсем и не ругался, хотят он проверяет корректность.
Вот такой вот забавный эффект от некорректной настройки частот, будьте внимательны...
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Oct 6 2015, 08:23
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(Builder @ Oct 4 2015, 01:57) *
Добавлю, кажется нашел. Не нравились мои настройки частот в функции SystemClock_Config.


Оно?
Цитата(Errata)
In order to guarantee correct operation of the USB OTG FS peripheral, the AHB frequency should be configured to be not less than 14.2 MHz.

http://www.st.com/web/en/resource/technica.../DM00027213.pdf

Или что-то ещё?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post



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

 


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


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