avatar_Celal Kızılırmak

Telefon bluetooth ları

Başlatan Celal Kızılırmak, 10 Nisan 2018, 23:46:51

Celal Kızılırmak

Hocalarım bluetootla veri gönderme uygulamasını yaptım bilgisayardan gönderdiğim veriler doğru bir şekilde gidiyor yalnız telefonda bilgiler doğru gitmiyor.Telefonun bluetoothları kaç baud hızla çalışıyor bn baud uyuşmalığı diyorm ama sizinde bilgilerinizi almak istedim.

furkan41

9600 denediniz mi ?

Ben HC-05 ile yaptım picli bir uygulama baudrateye direk 9600 yazdım tıkır tıkır calıştı telefondan.

furkan41

bunun anlamanın en kolay yoluda şu olabilir SOFTWERİAL bir UART kurun telefondna gelen datayı bilgisayarın terminal ekranına göndersin oradan doğru gelip gelmediğini anlarsınız hiç olmazsa hızdan dolayımı onu cözersiniz. DEBUG işlemi yaparsınız kısacası.

Celal Kızılırmak

Furkan bey telefondan bluetooth terminal programıyla pcdekş putty programına veriyi gönderiyorm 9600 baud ile düzgün alıyor gönderiyor pcden pice gönderiyorm ondada sıkıntı yok ama telefondan pice sıkıntı çıkıyor.

furkan41

İnvert olayı var bu haberleşmelerde  datayı tersliyor filan biraz araştırın belki sorununuz bu olabilir cünkü pc den doğru alıpta telefondan almaması ilginc

Bu invert olayını belki pc kendi başına hallediyor olabilir ama telefonda öyle olmayabilir. Diye düşünüyorum.

Celal Kızılırmak

Nasıl çözebilirim ne yapmam gerekir.

furkan41

hangi yazılım dilinde yazıyorsun bilmiyorum MikroC de UART haberleşemeyi başlatırken baud rate data bit ve invert olayı var ben orda secimi yaptırıyorum .
Sendede gelen datayı invert edecek birşey araştırman lazım .

Yada REGISTIRLARI araştır.

seri haberleşmedeki bir araştır ona göre yine bakalım son durumu yazarsın.

KMD

Device=16F877A
XTAL=20
ALL_DIGITAL TRUE
TRISA = 0:PORTA=0
TRISB = 0:PORTB=0
PORTC =0:PORTC=0
PORTD = 0:PORTD=0
PORTE = 0:PORTE=0
Declare HSERIAL_BAUD=9600
Declare HSERIAL_RCSTA=%10010000       
Declare HSERIAL_TXSTA=%00100000

Declare LCD_TYPE alpha 
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1
Dim AL As Byte
Dim B As Byte
DelayMS 1000
;=====================================
HSerOut["OK",10,13]
BASLA:
Print At 1,1,"   PIC ILE PC  "
;=======================================
HSerIn 500,ATLA,[AL]    ;VERI ALINDIMI ALONMADI ISE VERI YOK ETIKETINE DALLAN

Print At 2,2,"VERI ALINDI"    ;VERI ALINDI ISE VERI ALINDI YAZ EKRANA
DelayMS 1000                   ;1000 MS BEKLE
Print At 2,2,"                "  ;IKINCI SATIRI SIL 

Print At 2,2,AL                ;IKINCI SATIRA VERIYI YAZ
DelayMS 500                     ;500 MS BEKLE
HSerOut[AL,10,13]               ;ALDIGIN VERIYI TERMINALE GERI YOLLA SONRA 1 SATIR SAGI IN
DelayMS 4000                     ;4000 MS BEKLE
         HSerOut["OK",10,13]     ;TERMINALE OK VERISI YOLLA
;_________________
ATLA:
Print At 2,2,"VERI YOK"      ;VERI YOK ETIKETI
DelayMS 1000
                 Print At 2,2,"                "
;==============================================             
GoTo BASLA
;========================================================================================

Celal Kızılırmak

Hocam kodlarla alakalı değil çünkü ben isiste compini direk olarak virtual teminale bağlıyorm ondada aynı veriler düzgün gelmiyor.

Celal Kızılırmak

Hocam birde birşey soracağım; bluetootdan gönderdiğim veriyi lcd de görmek istiyorum mesela "CELAL" verisini gönderiyorm ama sadece "L"bilgisiniz görüyorm lcd de yardm edermisiniz.

KMD

celal bende onun uzerıne ugrasıyorum  :) ete hoca yardımcı olursa bu konuda sevınırız

KMD

celal yazı ısını cozdum sukur  AL,AL1...AL4  bolumu.yanı ben 5 adet degısken 5 adet karakter demek.5 karakterlı ıstedıgın yazıyı yazabılırsın :) tabı 2x16 lcd ıcın 16 adet degısken tanımlayıp 1.veya ıkıncı satıra 16 karakterlı bır yazı yazabılırsın.hadı selametle.

Device=16F877A
XTAL=20
ALL_DIGITAL TRUE
TRISA = 0:PORTA=0
TRISB = 0:PORTB=0
PORTC =0:PORTC=0
PORTD = 0:PORTD=0
PORTE = 0:PORTE=0
Declare HSERIAL_BAUD=9600
Declare HSERIAL_RCSTA=%10010000        ;DONANIMSAL SPI KULLANILACAK ISE
Declare HSERIAL_TXSTA=%00100000
;Declare HSERIAL_CLEAR = On
;DECLARE HSERIAL_PARITY =EVEN


Declare LCD_TYPE alpha 
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1
Dim AL As Byte
Dim AL1 As Byte
Dim AL2 As Byte
Dim AL3 As Byte
Dim AL4 As Byte

Dim B As Byte
DelayMS 1000
;=====================================
HSerOut["OK",10,13]
BASLA:
Print At 1,1," HC-06 BLUETHOT  "
;=======================================
HSerIn 500,ATLA,[AL,AL1,AL2,AL3,AL4] ;KAC KELIME YAZACAKSAN O KADAR DEGISKEN TANIMLA ÖRNEK:HC-06 //AL=H  AL1=C AL2=-  AL3=0 AL4=6
                                     ;5 KAREKTERLI ISTEDIGIN YAZIYI YAZABILIRSIN
Print At 2,2,"VERI ALINDI"    ;VERI ALINDI ISE VERI ALINDI YAZ EKRANA
DelayMS 1000                 ;1000 MS BEKLE
Print At 2,2,"                "  ;IKINCI SATIRI SIL 
Print At 2,2,AL,AL1,AL2,AL3,AL4                ;IKINCI SATIRA VERIYI YAZ
DelayMS 500                     ;500 MS BEKLE
HSerOut[AL,10,13]               ;ALDIGIN VERIYI TERMINALE GERI YOLLA SONRA 1 SATIR SAGI IN
DelayMS 4000                     ;4000 MS BEKLE
         HSerOut["OK",10,13]     ;TERMINALE OK VERISI YOLLA
;_________________
ATLA:
Print At 2,2,"VERI YOK"      ;VERI YOK ETIKETI
DelayMS 10
;==============================================             
GoTo BASLA
;========================================================================================

İlyas KAYA

Son harfi almıyordur . Hepsini alıyordur ancak siz bütün byte ları almadığınız için olsa gerek sadece son byte ' i görüyorsunuz. Kodlarınızı görmemiz gerekecek.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

KMD

programda su donanımsal spı fılan yazan yerlere aldanma onlar baska programlardan kalma kalıntılar sılmeyı unutmusum:)

Celal Kızılırmak

#14
İlyas hocam dediğiniz gibi bir anda hepsini alıyor çok hızlı oluyor bazen görüyorm ama son harfte kalıyor dediğiniz gibi.

                                                 *
'****************************************************************
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_ON
@ DEVICE pic16F628A, PWRT_ON
@ DEVICE Pic16F628A, BOD_OFF
@ DEVICE Pic16F628A, LVP_OFF
@ DEVICE pic16F628A, PROTECT_ON
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
CMCON=7
DEFINE OSC 4

PORTA=0:TRISA=0
PORTB=0:TRISB=%00000010

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically


DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_Lines 2
DEFINE LCD_CommandUs 1500
DEFINE LCD_DataUs 50

Symbol GIE  =INTCON.7   'genel interruptları açıyor
Symbol PEIE =INTCON.6   'peripheralinterruptları açıyor
Symbol RCIE =PIE1.5     'USART Recive interrupt enable bit
Symbol RCIF =PIR1.5     'USART Receive interrupt flag bit

TEMP VAR Byte
GELDI VAR Bit
BILGI VAR Byte
SAYAC VAR Word

Pause 150
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"SISTEM ACILIYOR"
GIE=1           
PEIE=1
RCIE=1

On Interrupt GoTo KESME

BASLA:
      If GELDI=1 Then
        GELDI=0
        LCDOUT $FE,$80,"YENI BILGI GELDI"
        LCDOUT $FE,$C0,"BILGI=", BILGI,"   "
        SAYAC=0   
      If BILGI= 097 Then
      Toggle PORTA.0
      Else
      If BILGI=098 Then
      Toggle PORTA.1
      EndIf
      EndIf
      EndIf
       
      SAYAC=SAYAC+1
      If SAYAC=30000 Then
         SAYAC=0
         LCDOUT $FE,$80,"BILGI BEKLENIYOR"
      EndIf
      GoTo BASLA
     
Disable
KESME:
      HSerIn [BILGI]
      GELDI=1
      TEMP=RCREG
      Resume
      Enable
      End 


Powered by EzPortal