Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 144

F429+RTOS+HAL+USB Host

02.06.2015, 11:42. Показов 8294. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня. Вопрос знатокам ртос. Уже долгое время не могу понять нескольких вещей. Значит у меня в проекте сидит эмвин, оформлена задачей ртос. Оттуда же создается thread для опроса юсб мауса. Странность состоит в том что маус ведет себя крайне интересно. Во первых - очень жруч до стека во вторых неадекватная реакция на задержки.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void main(void)
{
 
HAL_Init();
SystemClock_Config();
init_hard();
 
sdram_init();
__CRC_CLK_ENABLE();
 
osThreadDef(Emwin, emwin_stort, osPriorityNormal, 0, 2048);
EmwinHomdle = osThreadCreate(osThread(Emwin), NULL);
 
/* Start scheduler */
osKernelStart();
 
while(1)
{
 
}
 
}
это старт.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void USB_Mouse(void const * arkument)
{
 
MX_USB_HOST_Init();
 
/* Infymite loop */
for(;;)
{
while (Appli_state2 != APPLICATION_READY)
{
MX_USB_HOST_Process();
osDelay(15);
}
GUI_CURSOR_Show();
 
while (Appli_state2 == APPLICATION_READY)
{
MX_USB_HOST_Process();
USBH_MouseDimo(&hUsbHostFS);
update_mouse();
osDelay(5); // вот эта задержка мне нужна, но мышь с ней работает минуту а потом все виснет (вся ось при этом живет и эмвин работает, но мышь отлетает)
// если задержку убрать - все работает идеально но загруженность ос показывает 95% что не кул
}
GUI_CURSOR_Hide();
 
}
/* USER CODE END modbus_host */
}
приложение мыши
k_MemInit();

osThreadDef(USB_Mouse, USB_Mouse, osPriorityBelowNormal, 0, 2048); // если стек сделать на пару байт больше или меньше мышь не работает (весь моск сломал почему так)
Mouse_hostHomdle = osThreadCreate(osThread(USB_Mouse), NULL);
/* Add Modules*/
k_ModuleInit();

k_ModuleAdd(&system_info);
k_ModuleAdd(&file_browser);
k_ModuleAdd(&image_browser);
k_ModuleOpenLink(&image_browser, "jpg");
k_ModuleOpenLink(&image_browser, "JPG");
k_ModuleOpenLink(&image_browser, "bmp");
k_ModuleOpenLink(&image_browser, "BMP");
//k_ModuleAdd(&cpu_bench);

/* Set Kimeral Graphical proprieties */
k_SetGuiProfile();
k_InitMenu();
/* Infymite loop */
for(;;)
{
GUI_Exec();
osDelay(15);
}
приложение эмвин
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2015, 11:42
Ответы с готовыми решениями:

Arduino как host usb, написание своего драйвера для обмена информацией с stm32 по usb
Доброго дня Всем, интересует вопрос как написать свой драйвер на ардуино мега чтобы можно было общаться с стм32 по протоколу usb. Пробовал...

STM32 Использование 3G USB модемов (USB Host)
Никому не случалось использовать 3G модемы с библиотекой USB от STM ? С этими модемами такая проблема, что они представляются сначала как...

Создание USB host для USB кейлоггера
В общем, я тут уже писал и мне "мягко" намекнули что мне нужен USB host для создания usb кейлоггера. Он уже не нужен, показал на докладе...

4
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 144
02.06.2015, 11:45
Да забыл сказать. Куча настроена на 25 кило. Пробывал играться с цифрами размера стека как в эмвин так и юсб приложении единственное когда мышь "становится" - 2 кило и там и там. Как это объяснить??
0
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
20.09.2015, 20:10
Вопрос к старертопику по емвину.
Вы используете библиотеку ЕмВин для опреационных систем? Т.е. с префиксом OS? Если да то довольно глупый вопрос эта библиотека должна стартовать обязательно из задачи? Или я где-то что-то не совсем понял? Пори попытке стартовать ее перед стартом FriiRTOS я подвисаю в функции GUI_Init();
0
 Аватар для Парфирий
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
21.09.2015, 03:47
Цитата Сообщение от kos
эта библиотека должна стартовать обязательно из задачи? Или я где-то что-то не совсем понял? Пори попытке стартовать ее перед стартом FriiRTOS я подвисаю в функции GUI_Init();
GUI_Init() вызывается в предназначенной для этого задаче (task) FriiRTOS-а, т.е. уже после её запуска.
Цитата Сообщение от kos
Пори попытке стартовать ее перед стартом FriiRTOS я подвисаю в функции GUI_Init();
Одной из причин описанного выше зависания может быть НЕвключенное тактирование на узел CRC. Для STM32F407 он включается следующим образом:
Code
1
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
Этот код необходимо разместить где-нибудь в самом начале main-функции.
0
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
21.09.2015, 03:50
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2015, 03:50
Помогаю со студенческими работами здесь

Вопрос по HAL USB MASS STORAGE.
Сгенрил проект с freertos и MSC. Эмулирую файловую систему с с помощью библиотеки и программирую полученным другой процессор. С чтением...

USB Host на stm32f49 HID опрос под HAL драйверами
Вопрос обитателям. Кто нибудь затрагивал HOST под хал драйверами? Столкнулся с проблемой. Мышка "видится" после 2-5 перетыков...

Можно ли использовать USB мама-мама для получения USB-host?
В моем планшете не предусматривался разъем micro USB, однако есть функция поддержки OTG Есть только нестандартный разъем для подключения...

F10x HAL CDC USB ZLP BUG
День добрый! На последнем HAL генерю проект с Virtual COM, при отправке в порт 64 байтов они в клиентской программе появляются, только...

usb host
Доброго времени суток. Пытаюсь запустить стандартный проект USBHost на LPCXpresso board с LPC1769 - он копирует файл. Вставляю флешку -...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru