koyodza (23.02.2012 15:23, просмотров: 117) ответил SciFi на Я думал, у Вас проблема в согласовании Endian, поэтому и привёл код для примера. Если нет, то делаем как обычно: осциллограф в зубы и проверяем времянку и прочее.
что-то не заметил, где у Вас там преобразование при написании ТСР/UDP для STM32 тоже нужно было преобразовывать индейцев. Использовал макросы, которые при максимальном уровне оптимизации компилируются в одну команду:
#define htons(n) (((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define ntohs(n) (((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define htonl(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))
#define ntohl(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))