Я преобразовываю массив uint8_t в массив char &, затем передаем его с использованием модуля gsm, но проблема при преобразовании uint8_t для изменения его значений (например, шестнадцатеричное значение 0455 становится 0400 даже когда-то 00)Keil IDE автоматически меняет значение orrignal char char
Я также пытаюсь изменить уровень оптимизации keil3 на уровень2, но сталкиваюсь с такой же проблемой.
Вот мой код
uint8_t b_id[2]={11, 12};
char bike_id[2]={0};
...
...
{
...
...
//send id data
for(i=0; i<2; i++)
{
sprintf(bike_id, "%02x", b_id[i]);
sim808_send_tcp_tx(bike_id, 2);
}
}
Есть ли какой-нибудь символ 'char b_id [2]' в этих '...' в верхней части блока? – StoryTeller
Пожалуйста, предоставьте [mcve]. – kaylum
Хотя я действительно задаюсь вопросом, что в этих '...' частях (вы уверены, что не изменяете 'id' каким-либо образом? Нет переполнения буфера?), Мне больше любопытно, что происходит * после * кода ты показываешь. Вы должны * действительно * попытаться создать [Минимальный, Полный и Подтверждаемый пример] (http://stackoverflow.com/help/mcve). И, конечно же, попробуйте найти способ использования отладчика, чтобы вы могли перешагнуть код, чтобы увидеть, что он на самом деле делает. –