tolyan249 |
Дата: Пт, 04.11.2022, 13:38 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
199
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Есть GSM модуль SIM900 ,отправляю команду ему AT, с pic16f628A Модуль отвечает ОК ,вижу в терминале , но не уходит на другую метку , так как ОК он не видит ,вместо кода символа 79 и 75 он видит 161 и 106 должно быть 79 75 10 13 Пик читает 13 10 79 75 Это отправляет GSM модуль ,сначала перевод строки потом текст не понятно
Если читать GSM модуль терминалом то он отправляет так 13 10 79 75 А это то что принимет пик от GSM модуля и отправляет обратно 10 13 161 106 Такое ощущение что пик не правильно принимает ,коды перевёрнуты местами 10 и 13 ,вместо 79 и 75 принимает 161 и 106
Может кто что подскажет.?
Device = 16F628A ' Xtal = 4 ' Config BODEN_OFF, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_OFF, INTRC_OSC_NOCLKOUT, DATA_CP_ON
Declare All_Digital = On 'Все порты - цифровые
'-------------------------- Настройки USART ----------------------------------
Declare Hserial_Baud 9600 ' Скорость передачи данных, бод Declare Hserial_TXSTA = %00100000 ' Включить передатчик USART Declare Hserial_RCSTA = %10010000 ' Включить приемник USART Declare Hserial_SPBRG 6 ' Значение регистра SPBRG для выбранной скорости Declare Hserial_Clear = On ' Автоматическая очистка бита ошибки переполнения
Dim i Byte Dim TEXT[20] As Byte
Clear 'Очистим RAM PORTB=%11110010 'Настроим portb CMCON = 7 'Отключим компараторы TRISB = %11110010 'Каналы - на вход, ключ - на вход, остальные - на выход TRISA = %00101110 OPTION_REG = %10000000 'Отключим подтяжку на portb
Cls
CheckPhone: 'Инициализация For i=1 To 20 TEXT=0 Next HSerOut ["AT" ,13] ' HSerOut ["AT" ,13,10] отправить запрос на английсом GSM модулю,для проверки подключения 'HSerIn 5000, CheckPhone,[Wait("OK")]'Ждем ответа, если нет , то снова на CheckPhone HSerIn 5000, CheckPhone,[TEXT[1],TEXT[2],TEXT[3],TEXT[4]] DelayMS 5000 HSerOut [TEXT[1],TEXT[2],TEXT[3],TEXT[4]] 'Отправить обратно что получили от GSM модуля DelayMS 5000 If TEXT[1]="O" and TEXT[2]="K" then goto main endif
GoTo CheckPhone
:main: HSerOut ["+CMTI: «SM»,1" ,13]
end
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Пт, 04.11.2022, 15:25
|
|
|
|