Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
ARM, Cortex, STM32 BME280 и STM32 Всем привет. Пробую подключить датчик температуры давления и влажности к STM32F103. Давление и температуру показывает правильно. А вот с влажностью проблемы. Возможно, я неверно превращаю калибровочные коэффициенты? adc_H от дыхания меняется. А вот значение влажности в последнем 3 выражении, если подышать на датчик, меняется от -97 до - 314 Кто-то работал с этим сенсором? https://www.cyberforum.ru/ arm/ thread2489546.html ARM, Cortex, STM32 ARM. Ассемблер. Работа с портами
Доброго времени. Начинаю ассемблер и хотелось бы понять, каким образом можно работать посредством этого языка с микроконтроллером. Есть ARM (Cortex-M0) контроллер с системой команд Thumb-2 и я никак не могу понять каким образом можно настроить порт на ассемблере. Математические преобразования и работа с регистрами вопросов в принципе не вызывает (по крайней мере простые задачи). А вот работа...
ARM, Cortex, STM32 Выбор МК для реализации передачи связи по IP Доброго времени суток, Прошу совета знатоков, может, кто с подобным сталкивался или имеет хоть какое-то представление в данном вопросе. В связи с трудовой деятельностью появилась задача организовать передачу аналоговой связи через Ethernet, то есть мне необходимо преобразовать аналоговые данные в цифровые и передать, при этом есть нюанс использования технологии POE, дабы исключить протяжку... https://www.cyberforum.ru/ arm/ thread2488986.html ARM, Cortex, STM32 Не прошивается STM32F103RCT6 https://www.cyberforum.ru/ arm/ thread2487607.html
Всем доброго времени суток Писал программу под микроконтроллер (не покупная доска, а просто МК). В какой-то момент МК перестал программироваться и реагировать. Напряжение на ножках I/O есть, что говорит о том, что питание на МК есть. Есть подозрение, что проблема вызвана тем, что случайно запрограммировал ножку PA0, которая отвечает за функцию WakeUp. Соответственно, была мысль, что МК перешёл в...
STM32 GPIO интересная проблема с Input ARM, Cortex, STM32
Всем привет, начал недавно STM32 осваивать (до этого были pic12-18/arduino/raspberry) и столкнулся с интересной проблемой: Настроил GPIO как Input Pull-Up но при считывании получаю 0. Условия: Несколько других также настроенных портов (Input Pull-Up) при этом посажены на землю (на один порт Output Open-Drain), а непосредственно перед считыванием переключаю другой порт Output Open-Drain...
ARM, Cortex, STM32 проект, созданный в STM32CubeMX, не собирается https://www.cyberforum.ru/ arm/ thread2486827.html
короче, я в кубе создал проект. настройка проекта есть на скрине. потом я создал проект для TrueStudio, и в TrueStudio открыл его. не изменяя код, я попытался собрать его. но при сборке выдается ошибка: Description Resource Path Location Type fatal error: stm32f1xx_hal.h: No such file or directory main.h /pr1/Inc line 31 C/C++ Problem как исправить? почему куб не собрал работающий проект?
ARM, Cortex, STM32 Проблема с заливкой bootloader в МК через Ulink2 & MDK-Arm 5.28a https://www.cyberforum.ru/ arm/ thread2486305.html
Приветствую всех! вопрос о заливке bootloader в МК через Keil MDK-Arm и Ulink2. Имеем: программатор ulink2 последней версии 2.03 firmware ПО Keil MDK-Arm 5.28a на Windows 10 плата с МК EFM32LG995F256 (Cortex M3 Silicon Labs) Скомпилированный на стороне bin файл загрузчика (bootloader) Задача - залить файл загрузчика в flash МК. Сам не разобрался, как данный bin файл зашить в МК.
ARM, Cortex, STM32 Info : dropped 'gdb' connection (error -400)
короче, я использую HAL, прошиваю через st-link v2 методом OpenOCD. и я должен помигать светодиодом. HAL_Delay я мог ставить любой сначала, все прекрасно работало. потом я решил сделать проект через STM32CubeMX. я забыл там включить отладку, в результате у меня st link перестал коннектиться к контроллеру. тогда я через connect under reset получил доступ к прошивке, и с помощью команды Erase Chip...
ARM, Cortex, STM32 Тест дебага не работает я использую плагин VisualGDB для разработки в Visual Studio 2017, микроконтроллер STM32F103C8T6, и ST-Link v2. дебаг я делаю через OpenOCD, использую дефолтный протокол. я пытаюсь при создании проекта провести тестирование дебага, но у меня выдаётся ошибка error expected 1 of 1 0x1ba01477. что делать? вот полный лог: ... https://www.cyberforum.ru/ arm/ thread2485618.html ARM, Cortex, STM32 Программирование на ARM Assembly https://www.cyberforum.ru/ arm/ thread2485191.html
Всем привет! Мне надо написать два кода по возведению неотрицательного числа в степень двумя способами: с помощью цикла и рекурсивно. Мне кажется, что я основное сделал, то есть логически поставил правильные условия для цикла и рекурсии, однако, очевидно, сделал ошибки в другом месте и не могу понять, что и где исправить. Был бы очень благодарен помощи. С помощью цикла: .data
ARM, Cortex, STM32 STM32 + ili9486(ili9488) - 8bit
Всем привет! Вопрос такой: есть у кого-нибудь опыт работы с дисплеями с такими процами как ili9486(ili9488) под stm32? Не использую Arduino, очень долго ищу какую-нибудь Си-библиотеку для такого дисплея, но все безуспешно. Электронщик развел платы по олд-скульному, глядя на табличку даташита, и опираясь, видимо, на свой внутренний голос. Я давно не видел, чтобы с такими дисплеями работали...
0 / 0 / 1
Регистрация: 28.09.2013
Сообщений: 61
0

STM32F205 Работа с USB - ARM, Cortex, STM32 - Ответ 13762089

09.08.2019, 17:02. Показов 3673. Ответов 20
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи возникла проблема с работой по USB и STM32F205.
Создал я, значит, дескриптор на три устройства: MSC, CDC #1 & RNDIS (CDC #2)
Кликните здесь для просмотра всего текста

C
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
__ALIGN_BEGIN static uint8_t USBD_HID_CDC_CfgDesc[USB_HID_CDC_CONFIG_DESC_SIZ] __ALIGN_END =
{
  0x09, /* bLength: Configuration Descriptor size */
  USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */
  DESCRIPTOR_TOTAL_LENGTH, /* wTotalLength: Bytes returned */
  0x00,
  USB_NUM_INTERFACES, /*bNumInterfaces: 5 interfaces (4 for CDC, 1 for MSC)*/
  0x01,         /*bConfigurationValue: Configuration value*/
  CONFIG_STRING_INDEX,         /*iConfiguration: Index of string descriptor describing
  the configuration*/
  0x80 | 0x00,         /*bmAttributes: bus powered and Support Remote Wake-up */
  0x32,         /*MaxPower 100 mA: this current is used for detecting Vbus*/
 
  /************** Mass Storage Class Descriptor ****************/
  /* 09 */
  0x09,         /*bLength: Interface Descriptor size*/
  USB_INTERFACE_DESCRIPTOR_TYPE,/*bDescriptorType: Interface descriptor type*/
  MSC_INTERFACE,         /*bInterfaceNumber: Number of Interface*/
  0x00,         /*bAlternateSetting: Alternate setting*/
  0x02,         /*bNumEndpoints*/
  0x08,         /*bInterfaceClass: MSC*/
  0x06,         /*bInterfaceSubClass : 1=BOOT, 0=no boot*/
  0x50,         /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/
  INTF_STRING_INDEX + 0,            /*iInterface: Index of string descriptor*/
  ////////////////////
  0x07,  
  USB_ENDPOINT_DESCRIPTOR_TYPE,
  MSC0_INEP_ADDR,
  0x02,         // bmAttributes, interrupt transfers
  0x40,
  0x00,
  0x00,
  ////////////////////
  0x07,
  USB_ENDPOINT_DESCRIPTOR_TYPE,
  MSC0_OUTEP_ADDR,
  0x02,
  0x40,
  0x00,
  0x00,
  ////////////////////
 
        /************** CDC0 Class Descriptor ****************/
    /******** /IAD should be positioned just before the CDC interfaces ******
                IAD to associate the two CDC interfaces */
 
  0x08, /* bLength */
  0x0B, /* bDescriptorType */
  CDC0_COMM_INTERFACE, /* bFirstInterface */
  0x02, /* bInterfaceCount */
  0x02, /* bFunctionClass */
  0x02, /* bFunctionSubClass */
  0x01, /* bFunctionProtocol */
    INTF_STRING_INDEX + 1, /* iFunction (Index of string descriptor describing this function) */
 
   /*Interface Descriptor */
  0x09,   /* bLength: Interface Descriptor size */
  USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: Interface */
  /* Interface descriptor type */
  CDC0_COMM_INTERFACE,   /* bInterfaceNumber: Number of Interface */
  0x00,   /* bAlternateSetting: Alternate setting */
  0x01,   /* bNumEndpoints: One endpoints used */
  0x02,   /* bInterfaceClass: Communication Interface Class */
  0x02,   /* bInterfaceSubClass: Abstract Control Model */
  0x01,   /* bInterfaceProtocol: Common AT commands */
  INTF_STRING_INDEX + 1,   /* iInterface: */
 
  /*Header Functional Descriptor*/
  0x05,   /* bLength: Endpoint Descriptor size */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x00,   /* bDescriptorSubtype: Header Func Desc */
  0x10,   /* bcdCDC: spec release number */
  0x01,
 
  /*Call Management Functional Descriptor*/
  0x05,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x01,   /* bDescriptorSubtype: Call Management Func Desc */
  0x00,   /* bmCapabilities: D0+D1 */
  CDC0_DATA_INTERFACE,   /* bDataInterface: 2 */
 
  /*ACM Functional Descriptor*/
  0x04,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
  0x02,   /* bmCapabilities */
 
  /*Union Functional Descriptor*/
  0x05,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x06,   /* bDescriptorSubtype: Union func desc */
  CDC0_COMM_INTERFACE,   /* bMasterInterface: Communication class interface */
  CDC0_DATA_INTERFACE,   /* bSlaveInterface0: Data Class Interface */
 
  /*Endpoint 2 Descriptor*/
  0x07,                           /* bLength: Endpoint Descriptor size */
  USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
  CDC0_INTEP_ADDR,                     /* bEndpointAddress */
  0x03,                           /* bmAttributes: Interrupt */
  LOBYTE(CDC_CMD_PACKET_SZE),     /* wMaxPacketSize: */
  HIBYTE(CDC_CMD_PACKET_SZE),
  0xFF,                           /* bInterval: */
 
  /*Data class interface descriptor*/
  0x09,   /* bLength: Endpoint Descriptor size */
  USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: */
  CDC0_DATA_INTERFACE,   /* bInterfaceNumber: Number of Interface */
  0x00,   /* bAlternateSetting: Alternate setting */
  0x02,   /* bNumEndpoints: Two endpoints used */
  0x0A,   /* bInterfaceClass: CDC */
  0x00,   /* bInterfaceSubClass: */
  0x00,   /* bInterfaceProtocol: */
  0x00,   /* iInterface: */
 
  /*Endpoint OUT Descriptor*/
  0x07,   /* bLength: Endpoint Descriptor size */
  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType: Endpoint */
  CDC0_OUTEP_ADDR,                            /* bEndpointAddress */
  0x02,                              /* bmAttributes: Bulk */
  LOBYTE(CDC_DATA_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
  HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
  0xFF,                             /* bInterval: ignore for Bulk transfer */
 
  /*Endpoint IN Descriptor*/
  0x07,   /* bLength: Endpoint Descriptor size */
  USB_ENDPOINT_DESCRIPTOR_TYPE,     /* bDescriptorType: Endpoint */
  CDC0_INEP_ADDR,                        /* bEndpointAddress */
  0x02,                             /* bmAttributes: Bulk */
  LOBYTE(CDC_DATA_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
  HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
  0x00,                              /* bInterval */
/*---------------------------------------------------------------------------*/
 
        /************** CDC1 Class Descriptor ****************/
    /******** /IAD should be positioned just before the CDC interfaces ******
                IAD to associate the two CDC interfaces */
 
      0x08, /* bLength */
      0x0B, /* bDescriptorType */
      CDC1_COMM_INTERFACE, /* bFirstInterface */
      0x02, /* bInterfaceCount */
      0xE0, /* bFunctionClass */
      0x01, /* bFunctionSubClass */
      0x03, /* bFunctionProtocol */
      INTF_STRING_INDEX + 2, /* iFunction (Index of string descriptor describing this function) */
 
       /*Interface Descriptor */
      0x09,   /* bLength: Interface Descriptor size */
      USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: Interface */
      /* Interface descriptor type */
      CDC1_COMM_INTERFACE,   /* bInterfaceNumber: Number of Interface */
      0x00,   /* bAlternateSetting: Alternate setting */
      0x01,   /* bNumEndpoints: One endpoints used */
      0xE0,   /* bInterfaceClass: Communication Interface Class */
      0x01,   /* bInterfaceSubClass: Abstract Control Model */
      0x03,   /* bInterfaceProtocol: Common AT commands */
      INTF_STRING_INDEX + 2,   /* iInterface: */
 
      /*Header Functional Descriptor*/
      0x05,   /* bLength: Endpoint Descriptor size */
      0x24,   /* bDescriptorType: CS_INTERFACE */
      0x00,   /* bDescriptorSubtype: Header Func Desc */
      0x10,   /* bcdCDC: spec release number */
      0x01,
 
      /*Call Management Functional Descriptor*/
      0x05,   /* bFunctionLength */
      0x24,   /* bDescriptorType: CS_INTERFACE */
      0x01,   /* bDescriptorSubtype: Call Management Func Desc */
      0x00,   /* bmCapabilities: D0+D1 */
      CDC1_DATA_INTERFACE,   /* bDataInterface: 2 */
 
      /*ACM Functional Descriptor*/
      0x04,   /* bFunctionLength */
      0x24,   /* bDescriptorType: CS_INTERFACE */
      0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
      0x00,   /* bmCapabilities */
 
      /*Union Functional Descriptor*/
      0x05,   /* bFunctionLength */
      0x24,   /* bDescriptorType: CS_INTERFACE */
      0x06,   /* bDescriptorSubtype: Union func desc */
      CDC1_COMM_INTERFACE,   /* bMasterInterface: Communication class interface */
      CDC1_DATA_INTERFACE,   /* bSlaveInterface0: Data Class Interface */
 
      /*Endpoint 2 Descriptor*/
      0x07,                           /* bLength: Endpoint Descriptor size */
      USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
      CDC1_INTEP_ADDR,                     /* bEndpointAddress */
      0x03,                           /* bmAttributes: Interrupt */
      LOBYTE(CDC_CMD_PACKET_SZE),     /* wMaxPacketSize: */
      HIBYTE(CDC_CMD_PACKET_SZE),
      0x01,                           /* bInterval: */
 
      /*Data class interface descriptor*/
      0x09,   /* bLength: Endpoint Descriptor size */
      USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: */
      CDC1_DATA_INTERFACE,   /* bInterfaceNumber: Number of Interface */
      0x00,   /* bAlternateSetting: Alternate setting */
      0x02,   /* bNumEndpoints: Two endpoints used */
      0x0A,   /* bInterfaceClass: CDC */
      0x00,   /* bInterfaceSubClass: */
      0x00,   /* bInterfaceProtocol: */
      0x00,   /* iInterface: */
 
      /*Endpoint OUT Descriptor*/
      0x07,   /* bLength: Endpoint Descriptor size */
      USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType: Endpoint */
      CDC1_OUTEP_ADDR,                            /* bEndpointAddress */
      0x02,                              /* bmAttributes: Bulk */
      LOBYTE(CDC_DATA_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
      HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
      0x00,                             /* bInterval: ignore for Bulk transfer */
 
      /*Endpoint IN Descriptor*/
      0x07,   /* bLength: Endpoint Descriptor size */
      USB_ENDPOINT_DESCRIPTOR_TYPE,     /* bDescriptorType: Endpoint */
      CDC1_INEP_ADDR,                        /* bEndpointAddress */
      0x02,                             /* bmAttributes: Bulk */
      LOBYTE(CDC_DATA_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
      HIBYTE(CDC_DATA_MAX_PACKET_SIZE),
      0x00,                              /* bInterval */
/*---------------------------------------------------------------------------*/
};

Запускаешь устройство, подключаешь устройство по USB и ВУАЛЯ!!! Три устройства определяются и работают (кроме одного - RNDIS, так как неправильно сконфигурирован, а точнее вообще не сконфигурирован).
И всё работает прекрасно. Флешка определяется - файлы вижу. Виртуальный ком-порт работает - данные шлются.
НО!
После перезагрузки устройства не вынимая кабеля устройство становиться неопознанным.
Далее после переподключения кабеля появиться моя флешка, но ком-порт уже отвалился и подключится я к нему не могу.
Кто подскажет куда копать? Как правильно перезагрузить устройство, чтобы оно нормально определялось по USB.

Вернуться к обсуждению:
STM32F205 Работа с USB ARM, Cortex, STM32
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2019, 17:02
Готовые ответы и решения:

STM32f205 && USB MSC HOST
Привет форумчане. Решил выбросить из некоего своего проекта SD-карточку, но у меня прошивка через...

STM32F205 USB HOST подключение клавиатуры (проблемы)(решено)
Всем доброго утра, уже неделю рою интернет, использую метод "Вариантстного Программирования" (метод...

STM32f205 КЗ по питанию
Запаял stm32f205 в lqfp64 корпусе на макетную плату. Все VDD + VBOT соединил вместе с + пит, VSS -...

STM32F205 SIM5320E
Доброго времени суток! Не пинайте, вопрос по модему, может кто сталкивался. Существует следующая...

АЦП stm32f205
Не работает АЦП stm32f205. Собственные мысли, где может быть ошибка, кончились, поэтому обращаюсь с...

20
09.08.2019, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2019, 17:02
Помогаю со студенческими работами здесь

NES эмулятор на stm32f205
Заделал тут девайсину. В общем то - спортивный интерес. Код был взят у китайцев (waves nes)....

STM32f205 + STMCube + Audio Example
Нашел такую замечательную прогу, как STMCube. С помощью ее сгенерировал проект USB HID - все...

Работа с USB-token или usb с премудростями
Доброго пятничного утра всем! Сначала опишу что есть и как это выглядит, а потом опишу что...

Работа внешнего жд USB 3.0 на компе с USB 2.0
Всем доброго дня и с Праздником! Вопрос такой значит хочу приобрести внешний жесткий диск на 2...

Модуль EMW3162 (STM32F205 + WIFI BroadCom BCM43362)
<Изображение удалено> <Изображение удалено> Компания MXCHIP выпустила модуль...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru