Mysteo 0 21 августа, 2020 Опубликовано 21 августа, 2020 · Жалоба Здравствуйте! Пришлось начать дружить с библиотекой lwIP. Вроде бы все настроил верно, пользователь с форума еще помог скинув примеры. Но проблема следующего характера, такое ощущение что либа не обрабатывает входящие сообщения, после выполнения ppp_apiconnect происходит следующее: либа периодично спамит периодично каким то сообщением, первый раз станция на него отвечает сообщением длинною 25 байт, либа съедает это сообщение, но ничего толкового не происходит, продолжается спам сообщением, станция тоже спамит каким-то сообщением. В общем соединение не устанавливается, хотя аппаратную часть настроил как надо. Как только в UART приходит пакет, я его отправляю через pppos_input_tcpip. Никаких задержек и зависонов тоже не наблюдаю. Пробовал на симкартах TELE2 и МТС, везде одно и тоже поведение. ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1 pppos_write[0]: len=29 ppp_start[0]: finished pppos_input[0]: got 25 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_write[0]: len=29 pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_write[0]: len=29 Далее одинаковая картина, около минуты продолжается, после чего либа сообщает что соединение разорвано. LCP: timeout sending Config-Requests ppp phase changed[0]: phase=12 Connection terminated. ppp_link_terminated[0] ppp_link_end[0] ppp phase changed[0]: phase=0 ppp_link_status_cb: PPPERR_CONNECT Я правильно понимаю, что после данной процедуры: sys_sem_new(&sem, 0); tcpip_init(tcpip_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); ppp = pppapi_pppos_create(&pppos_netif, ppp_output_cb, ppp_link_status_cb, NULL); pppapi_set_default(ppp); ppp_set_auth(ppp, PPPAUTHTYPE_CHAP, "mts", "mts"); err_t err = pppapi_connect(ppp,0); Я должен буду в ppp_pink_status_cb словить PPPERR_NONE , но я ловлю PPPERR_CONNECT , что означает потерю соединения. Еще мне не нравится, что в логах либа сообщает что в pppos_write она отправляет len = 29 , я так понимаю, это длина сообщения, однако в ppp_output_cb я ловлю 53 байта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 21 августа, 2020 Опубликовано 21 августа, 2020 · Жалоба Проанализировал лог из темы https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=155016 там после того как в логах промелькнет строчка: ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1 то за ней должна идти sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x61d7a4e7> <pcomp> <accomp>] а у меня она отсутствует, в логах с другого сайта, тоже такая строчка есть. Может быть это на что то намекнет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба А что Вам говорит товарищ отладчик в файле lcp.c ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба 22 часа назад, Mysteo сказал: такое ощущение что либа не обрабатывает входящие сообщения, после выполнения ppp_apiconnect происходит следующее: либа периодично спамит периодично каким то сообщением, первый раз станция на него отвечает сообщением длинною 25 байт, либа съедает это сообщение, но ничего толкового не происходит, продолжается спам сообщением, станция тоже спамит каким-то сообщением. А какая такая либа ?? Вот сколько не перечитал - так и не понял. Некоторые сообщения очень вредно читать, но все же... И на форуме же находимся. В смысле она (эта либа) у Вас живет какой-то "своей" жизнью? Прямо на сюжет из фантастического фильма похоже. На "Чужого" например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба 4 hours ago, AleksBak said: А какая такая либа ?? Вот сколько не перечитал - так и не понял. Некоторые сообщения очень вредно читать, но все же... И на форуме же находимся. Извините что так криво все написал. Суть такова. Настраиваю PPP соединение, с помощью lwIP. Вроде бы все настроил. При активации ppp режима модема и после выполнения данных команд sys_sem_new(&sem, 0); tcpip_init(tcpip_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); ppp = pppapi_pppos_create(&pppos_netif, ppp_output_cb, ppp_link_status_cb, NULL); pppapi_set_default(ppp); ppp_set_auth(ppp, PPPAUTHTYPE_CHAP, "mts", "mts"); err_t err = pppapi_connect(ppp,0); не устанавливается соединение, хотя на первый пакет, сформированный lwIP библиотекой модем отвечает 25 байтным сообщением, данное сообщение скармливаю pppos_input_tcpip() , в логах вижу, pppos_input got 25 bytes. И далее снова начинается спам каким-то сообщением, pppos_write[0]: len=29 , но станция на него уже не отвечает, с спамит 43 байтным сообщением ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1 pppos_write[0]: len=29 ppp_start[0]: finished pppos_input[0]: got 25 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_write[0]: len=29 pppos_input[0]: got 43 bytes pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: Dropping ACCM char <0> pppos_input[0]: got 43 bytes pppos_write[0]: len=29 LCP: timeout sending Config-Requests ppp phase changed[0]: phase=12 Connection terminated. ppp_link_terminated[0] ppp_link_end[0] ppp phase changed[0]: phase=0 12 hours ago, x893 said: А что Вам говорит товарищ отладчик в файле lcp.c ? Я что-то не вижу от него никаких отладочных сообщений, что то нужно задефайнить помимо этого ? Или Вы что-то другое имели в виду #define LWIP_DEBUG 1 #define PPP_DEBUG LWIP_DBG_ON Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба Я, как начинающий, делаю так 1. Есть исходный код и всегда можно посмотреть. 2. Есть отдатчик и можно по шагам посмотреть, что приходит и уходит 3. Попробовать разные типа авторизации PAP_SUPPORT CHAP_SUPPORT MSCHAP_SUPPORT EAP_SUPPORT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба Авторизацию пробовал разную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба Стесняюсь спросить: не отключен ли случайно в настройках lwIP программный расчет контрольной суммы (макросы CHECKSUM_GEN_xxx и CHECKSUM_CHECK_xxx должны быть установлены в 1), который задумано отключать для MAC у которого есть аппаратный посчет (у УАПП, разумеется, аппаратного подсчета нет и надо включать программный). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 22 августа, 2020 Опубликовано 22 августа, 2020 · Жалоба Они по дефолту единички, а я их не отключал. Завтра попробую на компьютере поднять PPP сервер, и через COM Port попробовать установи соединение, без участия GSM модема, хотя я не думаю что это в нем дело, и еще на другом компиляторе попробую собрать прошивку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 24 августа, 2020 Опубликовано 24 августа, 2020 · Жалоба Вот я конечно дал дрозда , при отправке буфера в ppp_input допустил грубейшую ошибку, сам не понял как там ковычки оказались: void ppp_input_user (uint8_t* buf, uint16_t size) { pppos_input_tcpip(ppp, "buf", size); } Исправил, теперь проблема следующего характера, если выбрана авторизация CHAP , то после обмена парой сообщений все останавливается: ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1 EAP=0 pppos_write[0]: len=24 ppp_start[0]: finished pppos_input[0]: got 29 bytes pppos_write[0]: len=24 pppos_input[0]: got 47 bytes pppos_input[0]: got 43 bytes pppos_write[0]: len=13 pppos_input[0]: got 46 bytes pppos_write[0]: len=23 netif_set_mtu[0]: mtu=1500 pppos_send_config[0]: out_accm=0 0 A 0 ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] ppp phase changed[0]: phase=7 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0xf01 proto=0x6234 pppos_input_drop: pbuf len=14, addr 0x20012fcc А если выбрана авторизация PAP, то происходит следующее: долгий обмен сообщениями, после чего ошибка авторизации выдается: ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=1 CHAP=0 CHAP_MD5=0 EAP=0 pppos_write[0]: len=24 ppp_start[0]: finished pppos_input[0]: got 29 bytes pppos_write[0]: len=24 pppos_input[0]: got 45 bytes pppos_input[0]: got 43 bytes pppos_write[0]: len=22 netif_set_mtu[0]: mtu=1500 pppos_send_config[0]: out_accm=0 0 A 0 ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] ppp phase changed[0]: phase=7 pppos_write[0]: len=16 pppos_input[0]: got 24 bytes pppos_input[0]: Dropping bad fcs 0x75f4 proto=0xc023 pppos_input_drop: pbuf len=7, addr 0x20012fcc pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_write[0]: len=16 pppos_input[0]: got 24 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_input[0]: Dropping bad fcs 0x5c44 proto=0xc023 pppos_input_drop: pbuf len=7, addr 0x20012fcc pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_write[0]: len=16 pppos_input[0]: got 24 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_input[0]: Dropping bad fcs 0x44d4 proto=0xc023 pppos_input_drop: pbuf len=7, addr 0x20012fcc pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x20012fcc pppos_write[0]: len=16 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_input[0]: got 3 bytes pppos_input[0]: Dropping bad fcs 0x19cc proto=0xaa5e pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_write[0]: len=16 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_write[0]: len=16 pppos_input[0]: got 9 bytes pppos_input[0]: Dropping bad fcs 0xb174 proto=0xc023 pppos_input_drop: pbuf len=7, addr 0x200135c8 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_write[0]: len=16 pppos_input[0]: got 9 bytes pppos_input[0]: Dropping bad fcs 0x98c4 proto=0xc023 pppos_input_drop: pbuf len=7, addr 0x200135c8 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 pppos_input[0]: got 15 bytes pppos_input[0]: Dropping bad fcs 0x61df proto=0x8021 pppos_input_drop: pbuf len=13, addr 0x200135c8 No response to PAP authenticate-requests ppp phase changed[0]: phase=11 ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] pppos_write[0]: len=48 pppos_input[0]: got 31 bytes ppp phase changed[0]: phase=12 Connection terminated. ppp_link_terminated[0] ppp_link_end[0] ppp phase changed[0]: phase=0 ppp_link_status_cb: PPPERR_AUTHFAIL ppp_link_terminated[0]: finished. Смущает меня появление dropping bad fcs после нескольких сообщений, в справке сказано , что попробовать поменять baudrate , но я его и так минимальный выставил 9600 . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 24 августа, 2020 Опубликовано 24 августа, 2020 · Жалоба 1 час назад, Mysteo сказал: в справке сказано , что попробовать поменять baudrate Радуют меня такие справки. То, что перед этим весь процесс поднятия сессии без ошибок прошел, а после поднятия они посыпались в каждой посылке, ни их ни вас не смущает? Такое ощущение, что вы либо не все принятные байты передаете в ppp_input_user(), либо процедура приема у вас некторые принятые баты "глотает", либо она затирает старший бит в данных (установление сесии идет в 7-битных ASCII, там это может быть незаметно), либо портятся результаты расчета (но это очень маловероятно). А нет логичекого анализатора, чтобы посмотреть принимаемые от модема данные и сравнить их с передаваемыми в ppp_input_user()? 1 час назад, Mysteo сказал: сам не понял как там ковычки оказались: кАвычки. А вот плюсы не позволяют передать адрес строкового литерала через неконстантный указатель. Еще один плюс в пользу плюсов для сомневающихся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 24 августа, 2020 Опубликовано 24 августа, 2020 · Жалоба Сейчас, что нибудь придумаю, как все хорошенько проанализировать, логического анализатора нету, но как нибудь продебажусь. ppp_set_auth_required(ppp, 1); А данная строчка нужна только если ppp сервер поднимаешь ? Просто если я ее использую то картина немного меняется при CHAP ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1 EAP=0 pppos_write[0]: len=29 ppp_start[0]: finished pppos_input[0]: got 25 bytes pppos_write[0]: len=24 pppos_input[0]: got 29 bytes pppos_write[0]: len=24 pppos_input[0]: got 46 bytes pppos_input[0]: got 43 bytes pppos_write[0]: len=13 pppos_input[0]: got 46 bytes pppos_write[0]: len=23 netif_set_mtu[0]: mtu=1500 pppos_send_config[0]: out_accm=0 0 A 0 ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] peer refused to authenticate: terminating link ppp phase changed[0]: phase=11 ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] при PAP ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=1 CHAP=0 CHAP_MD5=0 EAP=0 pppos_write[0]: len=28 ppp_start[0]: finished pppos_input[0]: got 23 bytes pppos_write[0]: len=24 pppos_input[0]: got 29 bytes pppos_write[0]: len=24 pppos_input[0]: got 46 bytes pppos_input[0]: got 43 bytes pppos_write[0]: len=22 netif_set_mtu[0]: mtu=1500 pppos_send_config[0]: out_accm=0 0 A 0 ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] peer refused to authenticate: terminating link ppp phase changed[0]: phase=11 ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grigorij 0 24 августа, 2020 Опубликовано 24 августа, 2020 (изменено) · Жалоба Вы при вызове ppp_set_auth() задаете имя пользователя и пароль для авторизации. Они корректные для MTC, а вот корректный ли APN Host name задан с помощью AT+CGDCONT? Какая у вас последовательность AT-команд до запуска LWIP? Ну и выше уже предложили проверить, все ли данные от модема в LWIP пересылаются. Изменено 24 августа, 2020 пользователем Grigorij Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 24 августа, 2020 Опубликовано 24 августа, 2020 · Жалоба Последовательность следующая: AT+CGDCONT=1,"IP","internet.mts.ru" AT+CGACT=1,1 ATD*99***1# ppp_set_auth() я понимаю , что задаешь имя пользователя и пароля а еще есть ppp_set_auth_required () А целостность я следующим образом проверил: подключил RX переходника UART-USB к TX модема, и через слушатель COM_PORT'a смотрю какие пакеты модем отправляет , в последнем пакете почему то ошибка модем отправил 26 байт, а МК передал в ppp_input только 15 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 24 августа, 2020 Опубликовано 24 августа, 2020 · Жалоба Иправил проблему выше, если пакет сообщения содержал 0x00 , то в буфере приемнике возникали проблемы. Сейчас уже лучше ситуация: ppp phase changed[0]: phase=0 ppp_connect[0]: holdoff=0 ppp phase changed[0]: phase=3 pppos_connect: unit 0: connecting ppp_start[0] ppp phase changed[0]: phase=6 pppos_send_config[0]: out_accm=FF FF FF FF ppp_send_config[0] pppos_recv_config[0]: in_accm=FF FF FF FF ppp_recv_config[0] ppp: auth protocols: PAP=1 pppos_write[0]: len=24 ppp_start[0]: finished pppos_input[0]: got 29 bytes pppos_write[0]: len=24 pppos_input[0]: got 46 bytes pppos_input[0]: got 43 bytes pppos_write[0]: len=22 netif_set_mtu[0]: mtu=1500 pppos_send_config[0]: out_accm=0 0 A 0 ppp_send_config[0] pppos_recv_config[0]: in_accm=0 0 A 0 ppp_recv_config[0] ppp phase changed[0]: phase=7 pppos_write[0]: len=20 pppos_input[0]: got 27 bytes PAP authentication succeeded ppp phase changed[0]: phase=9 Далее ловлю зависон , т.к FreeRTOS по какой то причине убивает многие задачи. Завтра буду разбираться почему. Возможно моя функция вывода отладочной информации создает проблемы. Впрочем если отключить LWIP_DEBUG , то после обмена сообщениями модем выдает NO CARRIER и ловлю статус PPPER_CONNECT int16_t uprintf (const char *fmt, ...) { int16_t outsize; va_list ap; // Вернет ошибку, если формат является указателем NULL: if (!fmt) { return -1; } // Вернет ошибку, если строка превышает размер буфера, с учетом // необходимых дополнительных 2 символов: CR и нулевой терминатор ASCIIZ: if (UPRINTF_BUF_SIZE-2 < strlen(fmt)) { return -1; } va_start (ap,fmt); outsize = vsprintf(strbuf, fmt, ap); strbuf[outsize+1] = 0; va_end (ap); HAL_UART_Transmit(&huart2,strbuf, outsize,1000); return outsize; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться