Вы публикуете как гость.
Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Еще один вариант вам покажу, без этой злосчастной функции. У вас ответы (судя по табличке, любезно предоставленной ув. @andrusha_152 ) разделяются префиксами (буквами). Тогда:
char i = 0;
if (rx_buf[i] == 'M'){
i++;
if (rx_buf[i] == '0'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран номер предыдущего трека
}else if (rx_buf[i] == '1'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран номер текущего трека
}else if (rx_buf[i] == '2'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран количество треков
}else if //и так далее
}
Не только Вы не узнали, ведь точек, которые принято ставить на схемах в местах соединения проводников, практически не видно. Я и сам увидел их только когда многократно увеличил рисунок
Можно вот так предположить: возьмём минимальный резистор из таблицы при 50 Вольтах R=2,2 кОм, тогда Iст=(50-15)/2200=16 мА, максимальный ток 1N4144A равен 17 мА, ещё вычесть ток потребления дифкаскада, как верно заметил тов. bigmanlav, и получится что 2,2-2,7 кОма - это норма.
А вот и зря.
Потому как ответ на команду AT+M2\r\n будет M2+000010\r\n, следовательно нужно принятую строку "M2+000010\r\n" сравнивать со строкой "M2+" и если есть полное совпадение, то мы может начать дальше разбирать строку, а именно 000010 - преобразовать в десятеричную систему (16).
if (cmpcmd("M2+", rx_buf)){
unsigned int n = getDecFromHexStr(rx_buf);
//Tеперь выводим на экран n
}
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.