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

 
 
> STM32F0xxx USB без HAL
alexf
сообщение Oct 23 2016, 03:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608



Делаю устройство на STM32F070. Сгенерировал код с USB CDC на кубе, и USB работает (пока) без нареканий. А вот попытки использовать HAL для других целей, скажем USART, создают больше проблем, чем решают. Для меня. Наверное, пользоваться не умею. В результате мешанина из HAL с прямыми обращениями к регистрам. Боюсь это меня рано или поздно узусит за задницу.

Так вот вопрос. Есть ли пример USB CDC без HAL? На F103 легко находится. Уже давно использовал. А для F0? Много ли надо менять, если нет готового кода?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
johnshadow
сообщение Oct 25 2016, 06:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Пример CDC для F072 можно подсмотреть в форке kuldeepdhaka/libopencm3-examples в ветке example/pwm/stm32f07.
под stm32f0xx пришлось в паре мест слегка поправить, т.к. получал hardfault по доступу к невыравненным данным.
типа такого:
Код
diff --git a/libopencm3/usb/usb_standard.c b/libopencm3/usb/usb_standard.c
index d94ceed..da47391 100644
--- a/libopencm3/usb/usb_standard.c
+++ b/libopencm3/usb/usb_standard.c
@@ -130,7 +130,9 @@ static uint16_t build_config_descriptor(usbd_device *usbd_dev,
    }

    /* Fill in wTotalLength. */
-    *(uint16_t *)(tmpbuf + 2) = totallen;
+    //*(uint16_t *)(tmpbuf + 2) = totallen;
+    *(tmpbuf + 2) = totallen & 0xFF;
+    *(tmpbuf + 3) = totallen >> 8;

    return total;
}

я так и не понял почему компилятор не обрабатывает такие ситуации сам (gcc-arm-embedded 5.4 2016q2). может кто из местных объяснит.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alexf   STM32F0xxx USB без HAL   Oct 23 2016, 03:03
- - Allregia   Цитата(alexf @ Oct 23 2016, 04:03) В резу...   Oct 23 2016, 05:14
- - AHTOXA   Цитата(alexf @ Oct 23 2016, 08:03) Есть л...   Oct 23 2016, 07:36
|- - alexf   Цитата(AHTOXA @ Oct 23 2016, 00:36) Приме...   Oct 23 2016, 19:19
- - Genadi Zawidowski   USBD_LL_Transmit вообще-то вызывается в обработчик...   Oct 24 2016, 08:02
- - johnshadow   использую libopencm3 на stm32f072 - CDC (для основ...   Oct 24 2016, 08:20
|- - Сергей Борщ   QUOTE (johnshadow @ Oct 24 2016, 11:20) и...   Oct 24 2016, 10:01
|- - johnshadow   Цитата(Сергей Борщ @ Oct 24 2016, 13:01) ...   Oct 24 2016, 10:07
|- - esaulenka   Цитата(Сергей Борщ @ Oct 24 2016, 13:01) ...   Oct 24 2016, 20:16
|- - Allregia   Цитата(johnshadow @ Oct 25 2016, 07:30) я...   Oct 25 2016, 07:10
|- - Сергей Борщ   QUOTE (johnshadow @ Oct 25 2016, 09:30) я...   Oct 25 2016, 07:41
||- - johnshadow   Цитата(Сергей Борщ @ Oct 25 2016, 10:41) ...   Oct 25 2016, 08:49
||- - Kabdim   Цитата(johnshadow @ Oct 25 2016, 11:49) m...   Oct 25 2016, 09:01
||- - Сергей Борщ   QUOTE (johnshadow @ Oct 25 2016, 11:49) m...   Oct 25 2016, 10:26
||- - johnshadow   Цитата(Сергей Борщ @ Oct 25 2016, 13:26) ...   Oct 25 2016, 13:03
|- - Kabdim   Цитата(johnshadow @ Oct 25 2016, 09:30) я...   Oct 25 2016, 08:10
|- - AHTOXA   Цитата(Kabdim @ Oct 25 2016, 13:10) Кодty...   Oct 25 2016, 10:21
|- - Kabdim   Цитата(AHTOXA @ Oct 25 2016, 13:21) Да ла...   Oct 25 2016, 11:41
- - Kabdim   Удалил, попутал со знаковым переполнением.   Oct 25 2016, 13:11


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

 


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


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