можно и так, с проверкой.
при передаче позаботьтесь, чтобы после цифр было не числовое значение
Код
U8 out, i, a;
out = 0;
i = 0;
while ((a = buf[i++] - '0') <=9) out = out * 10 + a;
или, если в буфере только три значения
Код
U8 out, i, a;
out = 0;
for (i = 0; i < 3; i++)
{
if ((a = buf[i] - '0') > 9) break;
out = out * 10 + a;
}