Seri İletişim Sorunu - Python

Başlatan vale9, 23 Aralık 2014, 14:53:27

vale9

Merhaba,

PIC16F648A ve GL865 GSM modem arasında 2400 baud 8N1 haberleştirme yapıyorum.
Donanımsal bir sorun yok, PIC'ten modeme AT komutları sorunsuz gidiyor ve cevapları yine normal geliyor.

Soruna gelince; Modem içerisine Python kod yüklüyorum ve PIC ile haberleşirken SER modülünü kullanıyorum.
Modemden PIC'e datalar sorunsuz gelmesine rağmen, PIC'ten modeme data gitmiyor veya Python script bunu algılamıyor.

PIC kodları:
BAUD VAR WORD
BAUD=396            ' 2400 BAUD
WAIT_CONNECTED:
    SERIN2 RX, BAUD, 60000, WAIT_CONNECTED, [WAIT ("CONNECTED")]
   
    ;blink routine                           
;---------MAIN_LOOP------------
MAIN_LOOP:                       
     
    SEROUT2 TX, BAUD, ["DEN1",13,10]
    PAUSE 100
WAIT_SENT:
    SERIN2 RX, BAUD, 60000, WAIT_SENT, [WAIT ("SUCCESS")]
    ;blink2 routine
GOTO MAIN_LOOP



Python kodları:

import MDM
import MOD
import SER
tx="at#cmuxscr=0\r"
MDM.send(tx,0)
a = MDM.send('AT+IPR=2400\r',2)
MOD.sleep(10)
SER.set_speed('2400','8N1')
MOD.sleep(10)
a = MDM.send('AT&K0\r',2)
MOD.sleep(10)
##########################################
# User defined settings
#########################################
SMSTO = '1234567890'                 # recipient number for the SMS
SMSTEXT = 'SERTest-28: '     # SMS text
##########################################
# End of User defined settings
##########################################
while (1 == 1):
    a = MDM.send('AT+CREG?\r',2)
    res = MDM.receive(5)
    if (res.find('0,1') != -1) or (res.find('1,1') != -1) or (res.find('0,5') != -1) or (res.find('1,5') != -1):
        break
    else:
        MOD.sleep(10)
SER.send('CONNECTED!\r\n')
x = SER.receive(1000)
a = MDM.send('AT+CMGF=1\r', 2)
res = MDM.receive(5)
MOD.sleep(5)
a = MDM.send('AT+CMGS="' + SMSTO + '"\r', 2)
res = MDM.receive(10)
a = MDM.send(SMSTEXT, 2)
a = MDM.send(x, 2)
a = MDM.sendbyte(0x1A, 2)
SER.send('SUCCESS\r\n')


Kodda görüldüğü gibi SMS içerisinde SMS Textten sonra PIC'ten gelen datayı SMS olarak göndermesi lazım ama SMS'te sadece SERTest-28: geliyor!





Hayat 1'ler ve 0'lardan ibarettir.