Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Delphi => Konuyu başlatan: murat_alb - 15 Ağustos 2004, 03:21:24

Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: murat_alb - 15 Ağustos 2004, 03:21:24
Selamlar arkadaşlar. delphi kullanıyorum ve delphinin içerisinde hazır bir component veya kod yok rs232 bağlantısı için bildiğim kadarıyla. bunun için bi kaç component indirdim ama performanslı bişeyler değil string olarak porta write filan yapıyo. biraz yüzeysel yani componentler. delphi ile pic arasındaki rs232 bağlantısını delphi tarafında nasıl çözebilirim bilgisi olan varmı. teşekkürler.
Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: axanc - 15 Ağustos 2004, 09:31:34
function TForm1.OpenCom(SerLinka : PChar) : boolean;
var
 fSuccess : boolean;
 dcb : TDCB;
 TimeOuts : COMMTIMEOUTS;
begin
 hCom := CreateFile(SerLinka,GENERIC_READ or GENERIC_WRITE,0,NIL,
 OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

 if(hCom = INVALID_HANDLE_VALUE) then begin
   Application.MessageBox('Uygunluk hatası !' , ApplicationName, MB_OK);
   OpenCom := False;
   exit;
 end;

 fSuccess := GetCommState(hCom, dcb);
 if(not fSuccess ) then begin
   Application.MessageBox('Okuma hatası !', ApplicationName, MB_OK);
   OpenCom := False;
   exit;
 end;

 dcb.BaudRate := 19200;                  //change of parameters
 dcb.ByteSize := 8;
 dcb.Parity := NOPARITY;
 dcb.StopBits := ONESTOPBIT;
 dcb.Flags := $00000001;                 //only fBinary = 1
 fSuccess := SetCommState(hCom, dcb);    //write of parameters back
 if(not fSuccess) then begin
   Application.MessageBox('Yazma hatası !', ApplicationName, MB_OK);
   OpenCom := False;
   exit;
 end;

 TimeOuts.ReadIntervalTimeout := 50;             //set of timeouts
 TimeOuts.ReadTotalTimeoutMultiplier := 50;
 TimeOuts.ReadTotalTimeoutConstant := 100;
 TimeOuts.WriteTotalTimeoutMultiplier := 50;
 TimeOuts.WriteTotalTimeoutConstant := 100;
 fSuccess := SetCommTimeouts(hCom,TimeOuts);
 if(not fSuccess) then begin
   Application.MessageBox('Zaman aşımı !', ApplicationName, MB_OK);
   OpenCom := False;
   exit;
 end;
                                             //clear of buffers
 fSuccess := PurgeComm(hCom,PURGE_TXABORT+PURGE_RXABORT+PURGE_TXCLEAR+PURGE_RXCLEAR);
 if(not fSuccess) then begin
   Application.MessageBox('Buffer hatası !', ApplicationName, MB_OK);
   OpenCom := False;
   exit;
 end;
 OpenCom := True;
end;


mail adresimden bağlantı kurarsan daha ayrıntılı bir delphi programı gönderebilirim...
Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: z - 15 Ağustos 2004, 09:54:39
Axanc

Bu windowsun kendi sistem kaynaklarını mı kullanıyor? W2000 ve XP de de çalışıyormu?
Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: axanc - 15 Ağustos 2004, 18:48:32
tabiki kendisi direk erişim istediği için NT tabanlılarda çalışma olasılığı düşük, daha denemedim..
Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: ise - 16 Ağustos 2004, 13:56:47
http://sourceforge.net/projects/tpapro/
async pro gayet maharetli işletim sistemi sorunuda bulunmamaktadır
Com1->PutChar(deger);
Başlık: Delphi ile RS232 nasıl yaparım
Gönderen: birumher - 16 Ağustos 2004, 14:48:12
Ben TComPort diye bir component kullanıyorum. XP de de çalışıyor hiç bir sorununu şimdiye kadar görmedim
Başlık: delphi I/O komponent
Gönderen: diot - 17 Ağustos 2004, 09:32:44
http://delphi.icm.edu.pl/ftp/d60free/as182d6.zip
http://delphi.icm.edu.pl/ftp/d60free/as200d6.zip
http://delphi.icm.edu.pl/ftp/d20free/ciacomport.zip


bu kısayollar delphi için ı/o komponentleridir . sanırım işinize yarar
ayrıntı için http://delphi.icm.edu.pl  bakınız
Başlık: Ynt: Delphi ile RS232 nasıl yaparım
Gönderen: ByTEK - 26 Ekim 2010, 22:00:04
Alıntı yapılan: birumher - 16 Ağustos 2004, 14:48:12
Ben TComPort diye bir component kullanıyorum. XP de de çalışıyor hiç bir sorununu şimdiye kadar görmedim

Selam acaba delphiden pice nasıl değer gönderiyorsunuz.. ve picde nasıl o değeri alıp karşılaştırma yapıyorsunuz.. örnek verebilirmisiniz..


kolay gelsin..
Başlık: Ynt: Delphi ile RS232 nasıl yaparım
Gönderen: justice_for_all - 26 Ekim 2010, 22:09:47
com portu actiktan sonra

Com1->PutChar(deger);

yukaridaki komutla gonderme yaparsin bilgisayardan

asagidakide ccs c dilinde yazilmis program ornegi kesme ile bilgiler kac bayt gonderiyosaniz okadar baytlik dizinin icine getc() komutuyla kaydediliyor..

asagidaki ornekte 12 baytlik veri kaydedilir...

#int_rda
void kesme(void)
{
     char sayac=0;

     gelenveri[sayac]=getc();

     if(++sayac==12)
         sayac=0;

}
Başlık: Ynt: Delphi ile RS232 nasıl yaparım
Gönderen: ByTEK - 27 Ekim 2010, 00:20:54
Alıntı yapılan: justice_for_all - 26 Ekim 2010, 22:09:47
com portu actiktan sonra

Com1->PutChar(deger);

yukaridaki komutla gonderme yaparsin bilgisayardan

asagidakide ccs c dilinde yazilmis program ornegi kesme ile bilgiler kac bayt gonderiyosaniz okadar baytlik dizinin icine getc() komutuyla kaydediliyor..

asagidaki ornekte 12 baytlik veri kaydedilir...

#int_rda
void kesme(void)
{
     char sayac=0;

     gelenveri[sayac]=getc();

     if(++sayac==12)
         sayac=0;

}


Selam Teşekkür ederim.. arada usb ro rs232 kullandığım için sorun yaşıyordum.. picten bilgisayara veri aktarabiliyordum.. ama pc den pice aktaramıyordum.. sonradan masaüstü bilgisayarımdaki COM portu kullandığımda sorun olmadığını fark ettim.. bütün sorun aradaki usb çeviricide imiş.. JALv2 ve Delphi kullanarak gayet güzel bir iletişim sağladım.. ileride bir makale yazmayı düşünüyorum..

Kolay gelsin...
Başlık: Ynt: Delphi ile RS232 nasıl yaparım
Gönderen: M_B - 13 Aralık 2010, 21:22:52
Alıntı yapılan: 3L3CTRO - 27 Ekim 2010, 00:20:54
Alıntı yapılan: justice_for_all - 26 Ekim 2010, 22:09:47
com portu actiktan sonra

Com1->PutChar(deger);

yukaridaki komutla gonderme yaparsin bilgisayardan

asagidakide ccs c dilinde yazilmis program ornegi kesme ile bilgiler kac bayt gonderiyosaniz okadar baytlik dizinin icine getc() komutuyla kaydediliyor..

asagidaki ornekte 12 baytlik veri kaydedilir...

#int_rda
void kesme(void)
{
     char sayac=0;

     gelenveri[sayac]=getc();

     if(++sayac==12)
         sayac=0;

}


Selam Teşekkür ederim.. arada usb ro rs232 kullandığım için sorun yaşıyordum.. picten bilgisayara veri aktarabiliyordum.. ama pc den pice aktaramıyordum.. sonradan masaüstü bilgisayarımdaki COM portu kullandığımda sorun olmadığını fark ettim.. bütün sorun aradaki usb çeviricide imiş.. JALv2 ve Delphi kullanarak gayet güzel bir iletişim sağladım.. ileride bir makale yazmayı düşünüyorum..

Kolay gelsin...
merhaba 3L3CTRO hocam;
acaba makalenizi yazdınız mı ?