Цитата(desh @ May 13 2015, 17:07)

Функция CDC_Transmit_FS передает данные
Вот именно, что данные. Которые совсем не обязательно будут массивом байтов. Поэтому возлагать на пользователя необходимость захламлять исходник явными приведениями типа указателя на эти данные к указателю на массив байтов по меньшей мере непрофессионально. Кроме всего прочего параметр должен быть указателем именно на константные данные, потому что функция эти данные не меняет, значит а) может работать и с константными данными (из флеша) и б) константность помогает компилятору сгенерить более оптимальный код.
Все это вопросы хорошего стиля и подобные ляпы в примерах от производителя чести этому производителю не делают.
сравните:
Код
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{
....
}
void test()
{
static char const Hello_string[] = "Слава мне, победителю драконов!";
CDC_Transmit_FS((uint8_t*)Hello_string, sizeof(Hello_string) - 1);
}
и
Код
uint8_t CDC_Transmit_FS(void const * psrc, uint16_t Len)
{
uint8_t const * Buf = (uint8_t const *)psrc;
....
}
void test()
{
static char const Hello_string[] = "Слава мне, победителю драконов!";
CDC_Transmit_FS(Hello_string, sizeof(Hello_string) - 1);
}
одна строка в исходнике библиотечной функции разгружает от мусора исходник приложения и позволяет сосредоточится на решении задачи.