O hatayı neden aldığını söyleyeyim. Program sonlanırken senin thread in hala çalışıyor. Yani en son thread fonksiyonu bellekten siliniyor. button2 ye yada form.closed olayına şu kodu ekle; seriaPort.DataRecived -= SerialDataRecivedEventHandler(serialPort1_DataRecived) yada seriaPort.DataRecived -= serialPort1_DataRecived bu sayede önce thread silinecek sonra programın sonlanacak.
kapanırken donma olayını çözemedim tam olarak ne yapmam gerekiyor yardımcı olabilirmisiniz
5 лет назад
@@sametbinal5419 Samet kardeş, serialPort1.Close(); satırını button2 nin click event ına ekle , çünkü portun hala açık ve veri almaya devam ediyor... Daha da garantiye almak istersen serialPort1.DataRecived -= SerialDataRecivedEventHandler(serialPort1_DataRecived) bu satırıda serialPort1.Close() satırının altına ekleyebilirsin... Aslında ilk yorumumda serialPort1.Close(); ekle demeliydim ama unutmuşum :) yaşlılık işte ....
private void button2_Click(object sender, EventArgs e) { serialPort1.Close(); serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); } nerde yanlış yapıyorum hata devam ediyor Bir iş parçacığı çıkışı veya bir uygulama isteği nedeniyle G/Ç işlemi iptal edildi. yazıyor hatada
5 лет назад
@@sametbinal5419 Her şey normal görünüyor... Belkide sistemle alakalıdır. Yani bu mesajı windows un kendisi veriyor olabilir.. Bu mesaj program kapandıktan sonra mı geliyor yoksa program kapanmadan mı? Eğer programını visual studio nun için den değil de proje klasörünün içinden çalıştırırsan net anlayabilirsin. Bu mesaj windowsun kendi mesajı gibi görünüyor.
@ çalışmaya başladığında sıkıntı yok veri geliyor ama durdur butonuna bastığımda yada formu kapattmaya çalıştığımda form donuyor kapanmıyor. Hatta serialPort1.DiscardInBuffer(); kodunuda denedim ama bi çözüm bulamadım. formu delete+alt+ctrl yapıp kapatınca Bir iş parçacığı çıkışı veya bir uygulama isteği nedeniyle G/Ç işlemi iptal edildi yazıyor. data = serialPort1.ReadLine(); hata bu satırı gösteriyor.
2 Gündür uğraşıyorum. Arduino Leonardo doğru bir şekilde seri porta değer yazıyor. Bunu başka monitörler ile de gördüm. ama gösterdiklerini harfiyen yapmama rağmen data almıyordu. Sonra yabancı bir forumda Portu açmadan buton eventine serialPort1.RtsEnable = true; ve serialPort1.DtrEnable = true; ile çözüldüğünü gördüm. Yaptım oldu
Atakan bey merhaba, serialPort1.RtsEnable = true; ve serialPort1.DtrEnable = true; kodlarını tam olarak nereye eklediniz acaba? Ben de aynı sorunu yaşıyorum. Seri port'a bağlanıyorum ancak herhangi bir veri akışı olmuyor. Galiba sizinle aynı problemi yaşıyorum. Ancak verdiğinz kodları tam olarak nereye ekleyeceğimi bulamadım. :( Yardımcı olursanız sevinirim, saygılar.
Tamamdır sorunu çözdüm. :) serialPort1.BaudRate = 9600;'in hemen altına ekledim ve çalıştı. Tam emin değilim ancak arduino leonardo ve mega kullananlar bu problemi yaşıyormuş galiba. Eğer arduino leonardo veya mega kullanıyorsanız Atakan beyin verdiği bu iki kodu eklemelisiniz. :) Kolaylıklar dilerim.
Merhaba, başarılı bir video teşekkür ederim. '*' ile gelen iki veriyi ayrı ayrı okudunuz. Peki 2 den fazla veriyi mesela 10 adet veriyi nasıl okumalıyız ?
Çok faydalı dersler gercekten, teşekkürler. Bir soru sormak istiyorum; henuz yeni başladım, bir arayüz kullanarak Arduino ile veri okuma ve gerektiginde ledleri yakıp söndürme şeklinde bir uygulama yapmam gerekiyor. Python mu bu iş icin daha uygun yoksa C# mı? Eger aralarında fark yoksa C#' ı tercih ederim çünkü daha pratik görünüyor ama genelde insanlar Python ve Firmata ile Arduino haberlesmesi yapmıs gibi.
Stm32f103c8 kullanarak bluetooth ile telefon arasındaki veri alışverisinde hangi komutları kullanıcaz acaba. Sizi burda arduino için yazdınıž. Stm32 için nasıl yazmalıyız?
Merhaba, string olarak tanımladığımız data ve textleri, bir if-else yapısında < ya da > olarak karşılaştırmak istiyorum.Bir dht sicaklik sensörü okuyorum. Örneğin, eğer sicaklikDegeri.Text (sicaklikdegeri.text yanii splitted_data[0]) eğer < 20'den şunu şunu yap gibi. Yani sicaklik değerimiz 20 sayısından büyük ise şunu yap. int olarak dönüştürmeye çalıştım fakat yine de yapamadım.. Yardımcı olabilir misiniz?
11 месяцев назад
bahadirayd@gmail.com adresine dönüştürme işlemlerini nasıl yaptığınızı yazarsanız yardımcı olabilirim.
öncelikle verdiğin bilgiler için tesekkurler. hatayı duzeltmek için: button1_click kodunu try-catch icerisinde yazınca hata alma problemi ortadan kalkıyor.
Hocam merhabalar, şu şekilde çözebilirsiniz. Event için oluşturduğunuz serialPort1_DataReceived fonksiyonu içerisinde ki label.text'e; Invoke((MethodInvoker)delegate { label1.Text = splitted_data[0]; }); Bu şekilde yazmayı deneyiniz. Ayrıca durdurma olarak kullanacağınız buton içerisine de; if (serialPort1.IsOpen) { serialPort1.Close(); } kullanırsanız işi daha garantiye alırsınız. Bu şekilde sorun olmayacağını düşünüyorum. İyi çalışmalar.
Hocam merhaba ben Arduino ya 4 tane sensör bağlayıp c# ta bunun ayrı ayrı verilerini okutmak istiyorum nasıl yapacağım. Serialport tan kast edilen Arduino da ki port mu yoksa PC de arduinonun bağlı olduğu port mu biraz aciliyeti var hemen dönerseniz çok iyi olur
4 года назад+1
Ali Bilim Ben burda 2 tane veri okumuşum aynı şekilde 4li okuma yapacaksınız. Her veriyi aralarına *koyarak gönderin C#ta ayırın onları . Port Arduinonun PC’ye bağlı portu.
@ hocam ben bir yerde hata yaptım herhalde bu başka bir sorun üsttekinden farkli hocam ben projeyi bitirdim kaydettim sonra tekrar bi bakayım diye açtığımda tasarım kısmı full silinmiş öyle olunca kodlarda hata veriyor ben bu işi nasıl çözerim
samet binal diyor ki kapadığımda donma olayı oluyor demiş aşağıdaki yorumun içeriğinde ... yani programı kapadığın zaman kitleniyor...mehmet özcan fikir vermiş ama sanırım o da işe yaramamış ...
O hatayı neden aldığını söyleyeyim. Program sonlanırken senin thread in hala çalışıyor. Yani en son thread fonksiyonu bellekten siliniyor.
button2 ye yada form.closed olayına şu kodu ekle;
seriaPort.DataRecived -= SerialDataRecivedEventHandler(serialPort1_DataRecived)
yada
seriaPort.DataRecived -= serialPort1_DataRecived
bu sayede önce thread silinecek sonra programın sonlanacak.
kapanırken donma olayını çözemedim tam olarak ne yapmam gerekiyor yardımcı olabilirmisiniz
@@sametbinal5419 Samet kardeş, serialPort1.Close(); satırını button2 nin click event ına ekle , çünkü portun hala açık ve veri almaya devam ediyor... Daha da garantiye almak istersen serialPort1.DataRecived -= SerialDataRecivedEventHandler(serialPort1_DataRecived) bu satırıda serialPort1.Close() satırının altına ekleyebilirsin... Aslında ilk yorumumda serialPort1.Close(); ekle demeliydim ama unutmuşum :) yaşlılık işte ....
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
}
nerde yanlış yapıyorum hata devam ediyor
Bir iş parçacığı çıkışı veya bir uygulama isteği nedeniyle G/Ç işlemi iptal edildi. yazıyor hatada
@@sametbinal5419 Her şey normal görünüyor... Belkide sistemle alakalıdır. Yani bu mesajı windows un kendisi veriyor olabilir.. Bu mesaj program kapandıktan sonra mı geliyor yoksa program kapanmadan mı? Eğer programını visual studio nun için den değil de proje klasörünün içinden çalıştırırsan net anlayabilirsin. Bu mesaj windowsun kendi mesajı gibi görünüyor.
@ çalışmaya başladığında sıkıntı yok veri geliyor ama durdur butonuna bastığımda yada formu kapattmaya çalıştığımda form donuyor kapanmıyor. Hatta serialPort1.DiscardInBuffer(); kodunuda denedim ama bi çözüm bulamadım. formu delete+alt+ctrl yapıp kapatınca Bir iş parçacığı çıkışı veya bir uygulama isteği nedeniyle G/Ç işlemi iptal edildi yazıyor. data = serialPort1.ReadLine(); hata bu satırı gösteriyor.
2 Gündür uğraşıyorum. Arduino Leonardo doğru bir şekilde seri porta değer yazıyor. Bunu başka monitörler ile de gördüm. ama gösterdiklerini harfiyen yapmama rağmen data almıyordu. Sonra yabancı bir forumda Portu açmadan buton eventine serialPort1.RtsEnable = true; ve serialPort1.DtrEnable = true; ile çözüldüğünü gördüm. Yaptım oldu
Atakan bey merhaba, serialPort1.RtsEnable = true; ve serialPort1.DtrEnable = true; kodlarını tam olarak nereye eklediniz acaba? Ben de aynı sorunu yaşıyorum. Seri port'a bağlanıyorum ancak herhangi bir veri akışı olmuyor. Galiba sizinle aynı problemi yaşıyorum. Ancak verdiğinz kodları tam olarak nereye ekleyeceğimi bulamadım. :( Yardımcı olursanız sevinirim, saygılar.
Tamamdır sorunu çözdüm. :) serialPort1.BaudRate = 9600;'in hemen altına ekledim ve çalıştı. Tam emin değilim ancak arduino leonardo ve mega kullananlar bu problemi yaşıyormuş galiba. Eğer arduino leonardo veya mega kullanıyorsanız Atakan beyin verdiği bu iki kodu eklemelisiniz. :) Kolaylıklar dilerim.
@@olci1427 EVET ARDUİNO LEONARDO VE MEGADA SERİ PORT AKTİF ETMEN GEREKİYOR RTS VE DTR İLE SERİAL PORT OPEN YETERLİ OLMUYOR TX VE RX IŞIKLARI YANMIYOR
Videoyu beğendiyseniz beğenmeyi ve kanalıma abone olmayı unutmayın :)
Elinize sağlık 👍
Merhaba, başarılı bir video teşekkür ederim. '*' ile gelen iki veriyi ayrı ayrı okudunuz. Peki 2 den fazla veriyi mesela 10 adet veriyi nasıl okumalıyız ?
Çok faydalı dersler gercekten, teşekkürler. Bir soru sormak istiyorum; henuz yeni başladım, bir arayüz kullanarak Arduino ile veri okuma ve gerektiginde ledleri yakıp söndürme şeklinde bir uygulama yapmam gerekiyor. Python mu bu iş icin daha uygun yoksa C# mı? Eger aralarında fark yoksa C#' ı tercih ederim çünkü daha pratik görünüyor ama genelde insanlar Python ve Firmata ile Arduino haberlesmesi yapmıs gibi.
C# kalmıştı sayende ona da bulaştık:) emeğine sağlık...
hoba rey C# iyidir iyi:)
Stm32f103c8 kullanarak bluetooth ile telefon arasındaki veri alışverisinde hangi komutları kullanıcaz acaba. Sizi burda arduino için yazdınıž. Stm32 için nasıl yazmalıyız?
Merhaba, string olarak tanımladığımız data ve textleri, bir if-else yapısında < ya da > olarak karşılaştırmak istiyorum.Bir dht sicaklik sensörü okuyorum.
Örneğin, eğer sicaklikDegeri.Text (sicaklikdegeri.text yanii splitted_data[0]) eğer < 20'den şunu şunu yap gibi. Yani sicaklik değerimiz 20 sayısından büyük ise şunu yap. int olarak dönüştürmeye çalıştım fakat yine de yapamadım.. Yardımcı olabilir misiniz?
bahadirayd@gmail.com adresine dönüştürme işlemlerini nasıl yaptığınızı yazarsanız yardımcı olabilirim.
Hocam video içeriği çok faydalı ancak sonraki videolarda yazı boyutunu büyütebilirseniz çok güzel olur.
C# ile alakalı başka bir video çekersem tamam büyüteyim fontu. Teşekkürler.
öncelikle verdiğin bilgiler için tesekkurler.
hatayı duzeltmek için:
button1_click kodunu try-catch icerisinde yazınca hata alma problemi ortadan kalkıyor.
dediğinizi nasıl yapıcaz acaba tam anlamadım veri almayı durdurduğumda yada formu kapatmaya çalıştığımda form donuyor hata veriyor
Button 2' ye basınca thread hatası almaktayım, Mehmet Özcan' ın çözümü işe yaramadı. Yardımcı olabilir misiniz?
Hocam merhabalar, şu şekilde çözebilirsiniz. Event için oluşturduğunuz serialPort1_DataReceived fonksiyonu içerisinde ki label.text'e;
Invoke((MethodInvoker)delegate
{
label1.Text = splitted_data[0];
});
Bu şekilde yazmayı deneyiniz. Ayrıca durdurma olarak kullanacağınız buton içerisine de;
if (serialPort1.IsOpen)
{
serialPort1.Close();
}
kullanırsanız işi daha garantiye alırsınız. Bu şekilde sorun olmayacağını düşünüyorum. İyi çalışmalar.
merhaba, linkler çalışmıyor,
Merhaba, yarın kontrol edip burdan haber veririm size
Hocam merhaba ben Arduino ya 4 tane sensör bağlayıp c# ta bunun ayrı ayrı verilerini okutmak istiyorum nasıl yapacağım. Serialport tan kast edilen Arduino da ki port mu yoksa PC de arduinonun bağlı olduğu port mu biraz aciliyeti var hemen dönerseniz çok iyi olur
Ali Bilim Ben burda 2 tane veri okumuşum aynı şekilde 4li okuma yapacaksınız. Her veriyi aralarına *koyarak gönderin C#ta ayırın onları . Port Arduinonun PC’ye bağlı portu.
@ hocam ben bir yerde hata yaptım herhalde bu başka bir sorun üsttekinden farkli hocam ben projeyi bitirdim kaydettim sonra tekrar bi bakayım diye açtığımda tasarım kısmı full silinmiş öyle olunca kodlarda hata veriyor ben bu işi nasıl çözerim
nice
Arkadaşım yaptığın şeyin sonunu getirmemişsin hiç yorumları okumuyor musun =?
Ne gibi bir son bekliyorsunuz anlamadım ?
samet binal diyor ki kapadığımda donma olayı oluyor demiş aşağıdaki yorumun içeriğinde ... yani programı kapadığın zaman kitleniyor...mehmet özcan fikir vermiş ama sanırım o da işe yaramamış ...