ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
25 декабря
569845 Топик полностью
il-2 (30.12.2014 14:14, просмотров: 616) ответил Apтём на Может это перепутывание байтов - требования стандарта USB? В Ethernet-е к примеру байты тоже в big endian передаются, может и в USB так.
Нет, не так. И вообще эта проблема к USB не имеет отношения - принятые данные могут быть хоть в каком формате, но складывать в переменные их надо в соответствии с Endianless процессора (тем более что в USB и у STM32 используется little endian). Это просто тупой косяк, который они сделали и не потрудились исправить. А в тех местах где косяк проявлялся они наложили "костыли" вроде такого (еще не постеснялись указать это в комментарии): // usb_core.c #define StatusInfo0 StatusInfo.bw.bb1 /* Reverse bb0 & bb1 */ #define StatusInfo1 StatusInfo.bw.bb0