Ксения (29.10.2008 04:28, просмотров: 140) ответил Пaлыч на Огласите ошибку. Не только автору это интересно.
Замеченные ошибки: 1)Дефиниция SIZE_32 используется в usbd.c как размер буфера, когда как на самом деле это лишь код установки.
#define SIZE_32 2
Из-за этого в функциях
send_msg_to_console( unsigned int len, unsigned char __flash *flash_buffer)
void USB_send_buffer( unsigned char *ByteToSend, unsigned int len)
счетчик сравнивается с числом 2, когда как надо с 32:
if( block_counter == SIZE_32) ...
Из-за этого на больших скоростях библиотека не работает, т.к. буфер используется только на 2 байта.
2) Дефиниция U32 ошибочно объявлена в usbd.h, как unsigned short. Когда как надо - unsigned long. Из-за этого, например, этого структура S_line_coding получается бракованная, т.к. она содержит первый член типа U32.