hocam emeğinize sağlık, sondaki led uygulaması için while içerisindeki koşullarda rxIndex++; yerine rxIndex=0; yapılarak sürekli atama yerine rxBuf'ın 0. indeksini de okuyabilirdik değil mi
Tabiki datayi surekli sıfırıncı indeksi guncelleyerek okuyabilirdik ama bu kacinci datayi okudugumuzu anlamayi guclestirebilir ve kompleks yazilimlarda hata yapmaya sürükleyebilir.
Aslinda bir callback kullanicilar icin yapilmis bir fonksiyon eger proje icerisinde aratirsan callback fonksiyonunu irq fonksiyonu icerisinde cagiriliyor. Callback HAL in getirmis oldugu bir fonksiyon.
@@mkaanalsancak peki biz callback yerine sadece ırq kullandığımızda da aynı sonucu verir mi ayrıca ana döngüden önce receive_it fonksiyonu ile aktif etmemize gerek var mı .
Callback yerine irq kullanabilir ama interrupti aktif etmek gerekli. Receive interrupt fonksiyonu interrupt flag i ayarliyor. Eger standart kutuphane yada register seviyesi yazmak istersen irq kullanabilirsin.
Ilgin ve yorumlarin icin ben tesekkur ederim. Tranamiti interrupt ile kullanirsan polling moda gore siatemde daha az zaman alir. Yani bir timer kurup polling transmit ile intterrupt transmit fonkaiyonlarina girmw cikma sureleri arasindaki farka baksan interrupt mod transmitin cok daha hizli oldugunu gorursun. Bu islemleri genelde zamanlama kritik islemlerde kullaniyorum. Burada oyle bir durum olmadigi icin kullanmak istememisimdir buyuk ihtimalle acikcasi hatirlsmiyorum 😀
Selam, STM32F7xx UART ile HC-05 Bluetooth modülü sürmek ve mobil telefona ya da pc'ye data iletmek istiyorum ancak kodları F767'ye uygun şekilde modifiye ettiğim halde modülle haberleşmiyor! Nucleo F4 ya da F7 ile benzer bir video yapabilir misiniz?
Merhaba video için teşekkürler. Benim şöyle bir soru olacaktı. Eğer 4 tane farklı veriyi transmit_IT ile göndermek istiyorsam nasıl göndermeliyim ? 4 farklı değişken için 4 tane HAL_UART_Transmit_IT dediğimde ilki geliyor ama geri kalanlar gelmiyor.
Kod parcacigini benimle paylasabilir misiniz? Belki ardisik olarak ekleme islemi yapmaniz data gonderilmeden register a deger yazmaya calisiyor olabilir. Kodu gormeden yorum yapmam yanlis olabilir.
10 місяців тому
Hocam, Veri göndermeyi Hercules yerine Nextion ekrandan yapıyorum. ama bakıyorum Nextiondan sürekli formatsız nizami olmayan yani gürültü içerikli veride geliyor. Buda Programı her saniye İnterrupt ediyor. Halbuki Nextion ekrandaki s0 grafiğe analog veride göndermemde lazım. Bu sefer ona izin vermiyor. Çünkü stm103 sürekli interrupt yiyor. Ne önerirsin?
örneğin çok kısa aralıklarla 20ms gibi sürekli veri gönderim alımını dusünursek, gönderim hatasının olmaması için CRC kodu programa dahil edilmelimi birçok örnekte CRC uygulaması yok ve anlatılmıyor, bu CRC neden kullanilmiyor
Bu tamamı ile proje ile ilgili. Basit bir projede haberleşme hatasının sorun olmayacağı hafif trafikli sistemlerde crc kullanmak zaman kaybı olabilir. Haberleşme güvenliği düşünülüyor zamanlama on planda ise protokol veya donanım degişikliğine gidilebilir. ÖrneğinCANBus protokol gereği birçok önlem alinabiliyor ve hata yapma olasılığı çok düşük gibi avantajları var ama maliyet artıyor gibi gibi konular var. Bana gore projeye gore değişir ama ben haberleşeceğim cihaz crc istemiyorsa yapmamaya c alışıyorum. Bugun modullerde kullanılan bir çok modul crc istemiyor.
hocam merhaba uarttan gelen 8 bitlik veriyi nasıl okuyabiliriz start biti ve stop biti var baud hızımız 1200 burada anlamadığım nokta şu 1 start biti, 8 data biti, 1 stop biti yani 10 bitlik verimiz var Recieve it de delay olarak 1/1200 verirsek rx e girdiğinde 1 bit okumuş olur ve rx de bir diziye atsak aynı şekilde 8 bit için aynı işlemi yapsak olur mu yoksa 10 bit olduğu için ilk ve son bit kontrolü mü yapmamız gerekir.
Samet merhaba. Öncelikle bu haberlesmeyi hangi platformda yapacaksın? (mikro kontroller, fpga vs. ) eger fpga ile yapacaksan sana yadimci olamam. Çünkü bildiğim kadarıyla sinyal bazında uart islemini fpga de yada kontrolcude timer yardimiyla bir input pininden okuyarak yapıyorsun. Ben timer kontrolu ile bir input pini okuyarak uart yapmadım. Tasarimlarinda hep uart ozelligi olan pinleri seçtim. Benim yaptiklarimda stop biti kontrolu yada start biti kontrolu durumlariyla ugrasmadim. DR uzerinden 8 bitlik data okuma ve yazma islemi yaptim. Eğer yaptigin uygulama ile ilgili daha fazla detay verebilirsen sana daha fazla yardımcı olabilirim.
@@mkaanalsancak hocam aslında mikroişlemciler final sorumdu ve uartı yetiştirememiştim şu an büte hazırlanıyorum :D Kullandığımız mikroişlemci Stm32 hal kütüphanelerini kullanarak yazıyoruz Az önce anladım ki start biti ve stop bitini direkt cubeIde üzerinden ayarlıyoruz :D finalde uartı bilmediğimden düz algoritma mantığı ile yaklaşmıştım meğersem yanlışmış... mail adresinizi atabilirseniz uart ile ilgili bir kaç soru sormak isterim. pwm, adc, input capture modlarda sıkıntım yok fakat uartı bir türlü kavrayamadım.
hocam emeğinize sağlık, sondaki led uygulaması için while içerisindeki koşullarda rxIndex++; yerine rxIndex=0; yapılarak sürekli atama yerine rxBuf'ın 0. indeksini de okuyabilirdik değil mi
Tabiki datayi surekli sıfırıncı indeksi guncelleyerek okuyabilirdik ama bu kacinci datayi okudugumuzu anlamayi guclestirebilir ve kompleks yazilimlarda hata yapmaya sürükleyebilir.
Hocam peki IRQ handler ne işe yarıyor . Callbackten farkı nedir acaba.
Aslinda bir callback kullanicilar icin yapilmis bir fonksiyon eger proje icerisinde aratirsan callback fonksiyonunu irq fonksiyonu icerisinde cagiriliyor. Callback HAL in getirmis oldugu bir fonksiyon.
@@mkaanalsancak peki biz callback yerine sadece ırq kullandığımızda da aynı sonucu verir mi ayrıca ana döngüden önce receive_it fonksiyonu ile aktif etmemize gerek var mı .
Callback yerine irq kullanabilir ama interrupti aktif etmek gerekli. Receive interrupt fonksiyonu interrupt flag i ayarliyor. Eger standart kutuphane yada register seviyesi yazmak istersen irq kullanabilirsin.
@@mkaanalsancak Cevabınız için çok teşekkür ederim. Peki neden transmit modda ana döngü öncesinde neden transmiti aktif etmediniz.
Ilgin ve yorumlarin icin ben tesekkur ederim. Tranamiti interrupt ile kullanirsan polling moda gore siatemde daha az zaman alir. Yani bir timer kurup polling transmit ile intterrupt transmit fonkaiyonlarina girmw cikma sureleri arasindaki farka baksan interrupt mod transmitin cok daha hizli oldugunu gorursun. Bu islemleri genelde zamanlama kritik islemlerde kullaniyorum. Burada oyle bir durum olmadigi icin kullanmak istememisimdir buyuk ihtimalle acikcasi hatirlsmiyorum 😀
Hocam merhaba bu kodlari stm32f401re karti icinde yaptığınız gibi yapsak calisirmi acaba
Işlemci seçimini cubemx tarafında f401 e göre yaparsanız çalışır.
Selam,
STM32F7xx UART ile HC-05 Bluetooth modülü sürmek ve mobil telefona ya da pc'ye data iletmek istiyorum ancak kodları F767'ye uygun şekilde modifiye ettiğim halde modülle haberleşmiyor! Nucleo F4 ya da F7 ile benzer bir video yapabilir misiniz?
Elimde F4 ve ya F7 serisi bir board bulunmuyor. Ama kodu mail atarsanız yardımcı olmaya calısırım.
Merhaba video için teşekkürler. Benim şöyle bir soru olacaktı. Eğer 4 tane farklı veriyi transmit_IT ile göndermek istiyorsam nasıl göndermeliyim ? 4 farklı değişken için 4 tane HAL_UART_Transmit_IT dediğimde ilki geliyor ama geri kalanlar gelmiyor.
Kod parcacigini benimle paylasabilir misiniz? Belki ardisik olarak ekleme islemi yapmaniz data gonderilmeden register a deger yazmaya calisiyor olabilir. Kodu gormeden yorum yapmam yanlis olabilir.
Hocam, Veri göndermeyi Hercules yerine Nextion ekrandan yapıyorum. ama bakıyorum Nextiondan sürekli formatsız nizami olmayan yani gürültü içerikli veride geliyor. Buda Programı her saniye İnterrupt ediyor. Halbuki Nextion ekrandaki s0 grafiğe analog veride göndermemde lazım. Bu sefer ona izin vermiyor. Çünkü stm103 sürekli interrupt yiyor. Ne önerirsin?
örneğin çok kısa aralıklarla 20ms gibi sürekli veri gönderim alımını dusünursek, gönderim hatasının olmaması için CRC kodu programa dahil edilmelimi birçok örnekte CRC uygulaması yok ve anlatılmıyor, bu CRC neden kullanilmiyor
Bu tamamı ile proje ile ilgili. Basit bir projede haberleşme hatasının sorun olmayacağı hafif trafikli sistemlerde crc kullanmak zaman kaybı olabilir. Haberleşme güvenliği düşünülüyor zamanlama on planda ise protokol veya donanım degişikliğine gidilebilir. ÖrneğinCANBus protokol gereği birçok önlem alinabiliyor ve hata yapma olasılığı çok düşük gibi avantajları var ama maliyet artıyor gibi gibi konular var. Bana gore projeye gore değişir ama ben haberleşeceğim cihaz crc istemiyorsa yapmamaya c alışıyorum. Bugun modullerde kullanılan bir çok modul crc istemiyor.
hocam merhaba uarttan gelen 8 bitlik veriyi nasıl okuyabiliriz start biti ve stop biti var baud hızımız 1200 burada anlamadığım nokta şu 1 start biti, 8 data biti, 1 stop biti yani 10 bitlik verimiz var Recieve it de delay olarak 1/1200 verirsek rx e girdiğinde 1 bit okumuş olur ve rx de bir diziye atsak aynı şekilde 8 bit için aynı işlemi yapsak olur mu yoksa 10 bit olduğu için ilk ve son bit kontrolü mü yapmamız gerekir.
Samet merhaba.
Öncelikle bu haberlesmeyi hangi platformda yapacaksın? (mikro kontroller, fpga vs. ) eger fpga ile yapacaksan sana yadimci olamam. Çünkü bildiğim kadarıyla sinyal bazında uart islemini fpga de yada kontrolcude timer yardimiyla bir input pininden okuyarak yapıyorsun. Ben timer kontrolu ile bir input pini okuyarak uart yapmadım. Tasarimlarinda hep uart ozelligi olan pinleri seçtim. Benim yaptiklarimda stop biti kontrolu yada start biti kontrolu durumlariyla ugrasmadim. DR uzerinden 8 bitlik data okuma ve yazma islemi yaptim. Eğer yaptigin uygulama ile ilgili daha fazla detay verebilirsen sana daha fazla yardımcı olabilirim.
@@mkaanalsancak hocam aslında mikroişlemciler final sorumdu ve uartı yetiştirememiştim şu an büte hazırlanıyorum :D Kullandığımız mikroişlemci Stm32 hal kütüphanelerini kullanarak yazıyoruz Az önce anladım ki start biti ve stop bitini direkt cubeIde üzerinden ayarlıyoruz :D finalde uartı bilmediğimden düz algoritma mantığı ile yaklaşmıştım meğersem yanlışmış... mail adresinizi atabilirseniz uart ile ilgili bir kaç soru sormak isterim. pwm, adc, input capture modlarda sıkıntım yok fakat uartı bir türlü kavrayamadım.
Sayfamda linkedin linkim var oradan iletisime geçebiliriz.
kaan hocam sizden profesyonel bir destek talebinde bulunmak için mail attım. UA-cam daki malinize bakma şansınız var mı?
Merhaba, youtube'ta linkedin hesabim var oradan yazabilir misiniz?