Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32 » Вопросы » USB CDC для STM32F103


USB CDC для STM32F103

Сообщений 91 страница 94 из 94

91

Действительно, PMA отображается в память контроллера с интервалом через каждые 2 байта..
Т.е. идет 2 байта PMA, потом 2 нулевых байта.. и т.д.
Еще и в доке об этом написано так что хрен поймешь.

92

К проекту True Studio добавил файлы из этого проекта:
alexsam

При компилляции 5 одинаковых ошибок, при развёртывании макроса _USB_STRING_

Код:
_USB_STRING_(wsVendor, L"SaeWave.com")
_USB_STRING_(wsProd, L"RemoteSwitch HUB")
_USB_STRING_(wsSN, L"0123-4567-89")
_USB_STRING_(wsCDC, L"CDC Device")
_USB_STRING_(wsCDCData, L"CDC Data")


Ошибка -  "wide character array initialized from incompatible wide string" usblib.c /USB_CDC_alexsam/src line 178 C/C++ Problem

Макрос выглядит так:

Код:
#define _USB_STRING_(name, ws)                  \
    \
const struct name \
{                          \
        uint8_t  bLength;                       \
        uint8_t  bDescriptorType;               \
        uint16_t bString[(sizeof(ws) - 2) / 2]; \
    /*uint8_t bString[(sizeof(ws))];*/    	\
    \
} \
name __attribute__((used, section("usb_string"))) = {sizeof(name), 0x03, ws};


Почему массив не совместим с расширенным символьным типом, как это исправить?

P.S Сильно не пинайте только :)

93

Millyvolt написал(а):

К проекту True Studio добавил файлы из этого проекта:
---
Почему массив не совместим с расширенным символьным типом, как это исправить?


Замени букву L на u.
Было
_USB_STRING_(wsVendor, L"SaeWave.com")
стало
_USB_STRING_(wsVendor, u"SaeWave.com")

Я перенес проект на GCC. Тут можно взять:
https://github.com/Utyff/STM32F103-USB- … ee/GCC_fix

94

Utyf написал(а):

Я перенес проект на GCC. Тут можно взять:

спасибо.


Вы здесь » Микроконтроллеры » STM32 » Вопросы » USB CDC для STM32F103