реклама на сайте
подробности

 
 
> sscanf и uint8_t, как правильно?
toweroff
сообщение Oct 19 2015, 12:08
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день!

есть строка: "3150.7825"

нужно выделить из нее 31, 50 и 7825

есть структура:
Код
typedef __packed struct {
    uint8_t    lat_gr;
    uint8_t    lat_min;
    uint16_t    lat_secs;
} GPS_info_t;

как правильно записать строку форматов?

Пока вот с таким вариантом (там пробел вместо точки, если точка - в hard fault сразу)
Код
sscanf(token_buf, "%02c%02c %hd", &GPS_temp_data.lat_gr, &GPS_temp_data.lat_min, &GPS_temp_data.lat_secs);

считывается просто код символа, т.е.
lat_gr = '3'
lat_min = '5'
lat_secs = '0'

при таком - вываливаемся в hard fault
Код
sscanf(token_buf, "%02d%02d %hd", &GPS_temp_data.lat_gr, &GPS_temp_data.lat_min, &GPS_temp_data.lat_secs);


сканить в int переменные, а потом переприсваивать... некошерно...

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 03:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016