|
SIM800 чтение SMS |
|
|
|
May 17 2016, 12:57
|
Группа: Участник
Сообщений: 13
Регистрация: 17-05-16
Пользователь №: 91 771

|
Привет всем!
Возникла у меня странная ситуация с SIM800. Ожидаю смс вызовом в цикле AT+CMGR=1,0. Он мне возвращает OK пока смс не принят. Посылаю смс на номер, после чего uart стоит по таймауту, буфер, естественно пустой. Кто нибудь встречался с такой бедой? Таймаут 5 сек.
Да, и еще. Если смс отправить до того, как sim зарегистрировался в сети, то все нормально отрабатывает. Получаем +CMGR: 1,...
Помогите люди добрые. Уже невмоготуууу...
Прошивка 1418B03SIM800C24 Uart на autoban(менял на фикс.скорость - не помогает) Регистрируюсь в сети обычно. AT+CFUN=1 AT+CSQ AT+CPIN? AT+CREG? AT+CMGF=1 AT+CSCS="GSM" AT+CPMS="SM"
M2M, МТС
Сообщение отредактировал an24 - May 17 2016, 12:59
|
|
|
|
|
 |
Ответов
|
May 19 2016, 15:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата Потому что в любой момент вам может приехать URC и заблокирует запись. С чего вдруг блокировать запись? Входной поток отдельно, выходной отдельно. Они конечно могут стать зависимы, к примеру при отправке SMS когда от модуля надо дождаться приглашение на ввод, но это скорее исключение чем правило. Без прерывания можно только во время отправки не поймать часть входной строки по той мелкой причине, что тупая программа отправляет в цикле всю строку не обращая внимания на входящие символы. Цитата Чтобы повысить надежность мне пришлось перед записью проверять RXNE и читать. Короче, костыль. Использовал бы по входящему потоку прерывание в котором входящие символы тупо кидал в буфер(к примеру FIFO) и не морочил бы себе голову с костылями. Цитата А для чего сделали два UART? Изначально второй UART был как технологический, отладочный и для возможности перезаписи модуля не борясь с МК. Цитата Не для того ли, чтобы сделать нормальный full duplex? Ни в коем случае. Первый UART и так нормальный full duplex. Да и при твоём построении программы без использования прерываний и передаче строки модулю тупым циклом, второй UART тебе не поможет потому как пока ты передаешь строку в один UART процессор занят исключительно этим и не обращает внимание ни на что, включая сообщения со второго UART-а.
|
|
|
|
|
May 19 2016, 15:58
|
Группа: Участник
Сообщений: 13
Регистрация: 17-05-16
Пользователь №: 91 771

|
Цитата(ArtemKAD @ May 19 2016, 20:43)  С чего вдруг блокировать запись? Входной поток отдельно, выходной отдельно. Они конечно могут стать зависимы, к примеру при отправке SMS когда от модуля надо дождаться приглашение на ввод, но это скорее исключение чем правило. Без прерывания можно только во время отправки не поймать часть входной строки по той мелкой причине, что тупая программа отправляет в цикле всю строку не обращая внимания на входящие символы.
Использовал бы по входящему потоку прерывание в котором входящие символы тупо кидал в буфер(к примеру FIFO) и не морочил бы себе голову с костылями.
Изначально второй UART был как технологический, отладочный и для возможности перезаписи модуля не борясь с МК.
Ни в коем случае. Первый UART и так нормальный full duplex. Да и при твоём построении программы без использования прерываний и передаче строки модулю тупым циклом, второй UART тебе не поможет потому как пока ты передаешь строку в один UART процессор занят исключительно этим и не обращает внимание ни на что, включая сообщения со второго UART-а. Конечно UART принципиально ПОЛНОдуплексный. Но в SIM800 он реализован как полудуплексный, так как буфер на прием и передачу на стороне SIM один. И команда записи блокирует чтение и наоборот. Это мне объяснили мудрые люди и я это опробовал на железе. Все так и есть. Когда я пишу и читаю со своей стороны я могу соблюсти нужную последовательность. Но тут вмешивается SIM, который шлет мне неожидаемый (это их термин) код, который блокирует запись. А я то этого не знаю. Поэтому пришлось делать костыль. Можно было делать по прерываниям или DMA, но я доделывал программу, написанную ранее. Не хотелось все переписывать. Может быть и зря.
|
|
|
|
Сообщений в этой теме
an24 SIM800 чтение SMS May 17 2016, 12:57 Alechek Чет так и не понял, в чем проблема и кто стоит.
Ес... May 17 2016, 17:50 an24 Цитата(Alechek @ May 17 2016, 22:50) Чет ... May 17 2016, 18:09  Alechek Для начала научитесь выражаться правильно. А то мо... May 18 2016, 05:17   an24 Цитата(Alechek @ May 18 2016, 10:17) Для ... May 18 2016, 11:09 CADiLO Чтобы не придумывать для себя проблемы с UART, нав... May 18 2016, 11:17 an24 Цитата(CADiLO @ May 18 2016, 16:17) Чтобы... May 18 2016, 12:14  Alechek Цитата(an24 @ May 18 2016, 17:14) Естеств... May 18 2016, 17:33   an24 Цитата(Alechek @ May 18 2016, 22:33) Ваш ... May 19 2016, 04:15    Alechek Цитата(an24 @ May 19 2016, 09:15) Боротьс... May 19 2016, 04:26 CADiLO Дык тот кто знаком с принципом приема SMS, в перву... May 18 2016, 12:59 an24 Цитата(CADiLO @ May 18 2016, 17:59) Дык т... May 18 2016, 14:12 CADiLO >>>И никто из них даже не упоминает, о то... May 18 2016, 17:12 Rash Цитата(an24 @ May 19 2016, 07:15) Боротьс... May 19 2016, 05:40 Alechek Rash, ему еще далеко до этого. Если он не понимает... May 19 2016, 07:32 an24 Цитата(Alechek @ May 19 2016, 12:32) Rash... May 19 2016, 08:06  Alechek Цитата(an24 @ May 19 2016, 13:06) Полагаю... May 19 2016, 08:45   an24 Цитата(Alechek @ May 19 2016, 13:45) ко... May 19 2016, 09:07    Alechek Цитата(an24 @ May 19 2016, 14:07) Нужно б... May 19 2016, 11:15 ArtemKAD ЦитатаОчевидно, что тот кто придумал такую обработ... May 19 2016, 10:59 an24 Цитата(ArtemKAD @ May 19 2016, 15:59) Вну... May 19 2016, 15:41 Rash тему в юмор можно занести, особенно про асинхронно... May 19 2016, 14:13 Alechek Цитата(Rash @ May 19 2016, 19:13) тему в ... May 19 2016, 16:46  an24 Цитата(Alechek @ May 19 2016, 21:46) +1
Э... May 19 2016, 16:55   Alechek Цитата(an24 @ May 19 2016, 21:55) Приколь... May 20 2016, 07:28 Baser Цитата(an24 @ May 19 2016, 11:06) Я хотел... May 19 2016, 15:48 ArtemKAD ЦитатаНо в SIM800 он реализован как полудуплексный... May 19 2016, 16:15 an24 Цитата(ArtemKAD @ May 19 2016, 21:15) Или... May 19 2016, 16:29  ArtemKAD Цитата(an24 @ May 19 2016, 19:29) Я его в... May 19 2016, 17:09 Baser Цитата(ArtemKAD @ May 19 2016, 19:15) ЗЫ.... May 19 2016, 16:33  ArtemKAD Цитата(Baser @ May 19 2016, 19:33) Не ста... May 19 2016, 16:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|