HEX alma ve gönderme

Başlatan Yeniüye1234, 06 Eylül 2022, 17:25:39

fahri-

#15
putc(0x65); komutu ile göndereceksin
data=getc(); komutu ile alacaksın

Ama önce bu komutların işlenebilmesi için UART ayarlarını yapmalısın.
Aldığın datayı nerede göreceksin? LCD ekranda göreceksen printf komutuyla %x formatıyla görebilirsin.

Yeniüye1234

#16
Alıntı yapılan: fahri- - 07 Eylül 2022, 12:34:15putc(0x65); komutu ile göndereceksin
data=getc(); komutu ile alacaksın

Ama önce bu komutların işlenebilmesi için UART ayarlarını yapmalısın.
Aldığın datayı nerede göreceksin? LCD ekranda göreceksen printf komutuyla %x formatıyla görebilirsin.

Dediğiniz şekilde çok denedim ama olmuyor. data değişkeninin türü ne olacak? char mı?, int mi?

if ile karşılaştırma yapmak istesek nasıl yapacağız?

tunayk

#17
Olmaması için bir sebep yok normalde. Data tipi konusunu yazmıştım.  Char veya Byte tipinde alabilirsin.  Bir byte veri okunur her seferinde.

Bence ilk başta iki pici boşverin.  Tek pic te Tx ve Rx pinlerini birleştirin. Putc ile 1 byte yazın. Bir kaç ms sonra getc ile okuyun.

İçine okunacak Değişkeninizi byte olarak tanımlayın.
if(okunan==0x65).. diye kıyas yaparsın.

Eğer iş tamam ise ikinci pice geçersin. Değilse config konusunda bir sorun vardır.

fahri-

Aldığın datayı görüntüleyebilmen lazım ki hata nedir anlayabilesin. Önce pic den gönderdiğin datayı usb-rs232 çeviricilerle bilgisayarda görmeyi dene. Önce data doğru gidiyor mu onu tespit et.

Yeniüye1234

Alıntı yapılan: tunayk - 07 Eylül 2022, 12:52:37Olmaması için bir sebep yok normalde. Data tipi konusunu yazmıştım.  Char veya Byte tipinde alabilirsin.  Bir byte veri okunur her seferinde.

Bence ilk başta iki pici boşverin.  Tek pic te Tx ve Rx pinlerini birleştirin. Putc ile 1 byte yazın. Bir kaç ms sonra getc ile okuyun.

İçine okunacak Değişkeninizi byte olarak tanımlayın.
if(okunan==0x65).. diye kıyas yaparsın.

Eğer iş tamam ise ikinci pice geçersin. Değilse config konusunda bir sorun vardır.

putc(0x30); ve putc('4'); gönderiyorum. alıcıda char veri; tanımladım, veri=getc(); yapıyorum 4' e göe işlem yapıyor ama 0x30 a göre işlem yapmıyor.

tunayk

Alıntı yapılan: Yeniüye1234 - 07 Eylül 2022, 13:05:35putc(0x30); ve putc('4'); gönderiyorum. alıcıda char veri; tanımladım, veri=getc(); yapıyorum 4' e göe işlem yapıyor ama 0x30 a göre işlem yapmıyor.

O zaman sorun kalmamış zaten. Değişken char ise karşılaştırma char ile yapılır. Byte ise 0x30 gibi sayısal olarak  yapılır. Yada charı byte a çevirerek sayısal karşılaştırırsın.