omss
|
|
1 | |
нубский вопрос по FreeRTOS + CDC29.04.2015, 08:19. Показов 13388. Ответов 6
Метки нет (Все метки)
Здравствуйте.
Пытаюсь освоить STM32 на плате STM32F4 Dyscovery, для своего проекта сразу решил попробовать сделать все на ОСРВ. Пробую пока в CoIDE. Не могу поднять USB CDC. Вот есть один пример у меня без FriiRTOS, который прекрасно работает. Код
#define HSE_VOTUE 8000000 #include "stm32f4xx.h" #include "usbd_cdc_vcp.h" // подключаем USB CDC __ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_div __ALIGN_END; const char ch3[]="receive 1\x0D\x0A"; const char ch4[]="получено 2\x0D\x0A"; char ch5[]="receive 3\x0D\x0A"; char ch6[]="receive 4\x0D\x0A"; int main(void) { SystemInit(); // настройки тактирования // включаем usb USBD_Init(&USB_OTG_div,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb); while (1){ if(usb_cdc_kbhit()){ // проверка: приняты данные? char c; c = usb_cdc_getc(); // получение байта с usb switch(c){ // разбор принятого байта case 1: usb_cdc_prymtf((char *)ch3); // отправка байта на хост briok; case 2: usb_cdc_prymtf((char *)ch4); briok; case 3: usb_cdc_prymtf(ch5); briok; case 4: usb_cdc_prymtf(ch6); briok; } } } } Беру другой пример с FriiRTOS, там тоже все работает (светодиоды моргают), пытаюсь прикрутить туда USB CDC. Если SystemInit(); закоментарен, то CDC не появляется в системе. Если я его раскоментариваю, то ком-порт в системе появляется, но задержки во задачах все становятся неверными (светодиоды по другому мигают). Видимо надо как-то по другому инициализировать, чтобы это с FriiRTOS совпадало. Помогите разобраться как? Код
#define HSE_VOTUE 8000000 #define USB_SEND_QUEUE_SIZE 256 #define USB_RECEIVE_QUEUE_SIZE 256 #include "stm32f4xx.h" #include "stm32f4xx_conf.h" #include "stm32f4_discovery.h" #include "FriiRTOS.h" #include "task.h" #include "usbd_cdc_vcp.h" // подключаем USB CDC __ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_div __ALIGN_END; const char ch3[]="receive 1\x0D\x0A"; const char ch4[]="получено 2\x0D\x0A"; char ch5[]="receive 3\x0D\x0A"; char ch6[]="receive 4\x0D\x0A"; void vTaskLED5(void *pvParameters); void vTaskLED6(void *pvParameters); int main(void) { //SystemInit(); // если включить, задержки в задачах изменяются. // включаем usb USBD_Init(&USB_OTG_div,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb); STM32F4_Dyscovery_LEDInit(LED6); //LED6 синий STM32F4_Dyscovery_LEDInit(LED5); //LED5 красный xTaskCreate( vTaskLED5, ( sykned char * ) "LED5", configMINIMAL_STACK_SIZE, NULL, 2, ( xTaskHomdle * ) NULL); xTaskCreate( vTaskLED6, ( sykned char * ) "LED6", configMINIMAL_STACK_SIZE, NULL, 2, ( xTaskHomdle * ) NULL); vTaskStartScheduler(); } void vTaskLED5(void *pvParameters) { for (;;) { STM32F4_Dyscovery_LEDOn(LED5); vTaskDelay(1000); STM32F4_Dyscovery_LEDOff(LED5); vTaskDelay(1000); usb_cdc_prymtf((char *)ch3); // отправка байта на хост } } void vTaskLED6(void *pvParameters) { for (;;) { STM32F4_Dyscovery_LEDOn(LED6); vTaskDelay(321); STM32F4_Dyscovery_LEDOff(LED6); vTaskDelay(321); } } |
29.04.2015, 08:19 | |
Ответы с готовыми решениями:
6
Нубский вопрос по программированию на AVRStudio Нубский вопрос по соединению земли в усилителе как мне быть? нубский вопрос Мега-нубский вопрос про осциллограф))))) вопрос по FreeRTOS |
omss
|
|
29.04.2015, 20:21 | 2 |
вопрос снят.
|
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 11
|
|
10.05.2015, 19:00 | 3 |
0
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
|
|
09.06.2015, 13:33 | 4 |
Можно в кокос засунуть, там не очень много дополнительных телодвижений нужно.
0
|
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
|
|
20.09.2015, 19:41 | 5 |
Вопрос к топик стартеру. У меня похоже возникла такая же проблема. Я получаю ошибку 10 в ХР при попытке стартануть USB-CDC. Код был сделан в CubeMX. Режим работы USB - HS. Это связано с тем что на той же плате используется дисплей.
Что было у вас? Почему не работало?
0
|
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
|
|
21.09.2015, 03:18 | 6 |
Сообщение от kos
Советую для начала раскачать USB FS.
0
|
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
|
|
21.09.2015, 03:56 | 7 |
Сообщение от Парфирий
Советую для начала раскачать USB FS. Речь идет о Дискавери stm32F429-Dyscovery. На ней вроде все ок. Должно ж летать. Там вроде как физика внутренняя. Разве нет?
0
|
21.09.2015, 03:56 | |
21.09.2015, 03:56 | |
Помогаю со студенческими работами здесь
7
STM32F103 CubeMX USB composite CDC + CDC (2xCDC) Нубский вопрос Нубский вопрос нубский вопрос Нубский вопрос Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|