Hocam merhabalar , Öncelikle yaptığınız bu çalışma için teşekkür ederiz.Stm32 programlamaya yeni başlayan biri olarak soruyorum.Sizin stm32 video serisini bitirdikten sonra bizler neler kazanacaz veya hangi seviyede olacağız.Yani daha öğrenecek çok konu olacak mı? Teşekkürler...
Yeni başladığına göre bu seriyi uygulayarak ve anlayarak tamamlarsan çok şey öğreneceğini söyleyebilirim. Aynı zamanda öğrenmen gereken şeyler içinde de ufak bir bölüm olduğunu söyleyebilirim :)
emeğin için teşekkürler ilk örneğinizi yani dönel tampon olmayan örneğinizi keil da register seviyesinde kodladım ve sizin örneğinizide koduma uyarladım ama şöyle bir sıkıntı var data_flag 1 olmuyor bunuda debug yaptığımda break point attığımda gördüm kodu paylaşıcam hem siz hemde burdaki arkadaşlar bakmak isterlerse baksınlar. Tekrardan bu değerli bilgiler için çok teşekkürler özellikle register seviyesinde bu tür videoların gelmesini dört gözle bekliyorum. #include "stm32f0xx.h" #include uint8_t temp=0; volatile uint8_t buffer[20]; uint8_t data_flag=0; void USART2_IRQHandler(void) {
Merhaba etiketler kısmında rütbeli değeri yüksek etiket kullanmadığınızdan videonun Seo skoru 100 üzerinden 0 gözüküyor eğer Seo Ayarları oynatma listemdeki 4 videoyu izleyip eski yeni videolarınıza etiket eklerseniz Seo skorunuz 70 e kadar çıkabilir ve videolarınız aramalarda daha çok kelime ile üst sıralarda bulunacağında videolarınız daha fazla izlenir ve kanalınız daha hızlı gelişir, başarılarınızın devamını dilerim
Öncelikle video serileriniz ve emekleriniz için teşekkür ederim. 7:49 örnek projesinde USART->RDR 32 bitlik bir register, data_buffer ise 8 bitlik bir değişken olarak tanımlandı. RDR içerisindeki değeri data_buffer'a alırken neden (uint16_t) ile dönüştürülüyor?
Merhaba, öncelikle böyle sorular gelince, videoları dikkatlice izleyip uygulamaya çalışanlar da var diye görüp seviniyorum. Açıkçası bu örnekteki uint16_t dönüşümü gereksiz olmuş çünkü data_buffer 8 bit dizi olarak tanımlı. Github'daki örneklerde düzelteceğim. Teşekkürler.
peki video yu izlerken isletim sisteminde vcpu ring ile alakali bir hata almam ne olabilir :) hayatimda ilk defa gordum bu hatayi bir an sasirdim sanki beni bir konuya dogru yonlendirmek istiyor :) hocam egitimin bir parcasimi buda linux ile bir isbirliginizmi var 😁😁
ayrıca tek harf gönderdiğimizde sıkıntı yok ama bir string gönderdiğimizde karışık ve eksik atıyo örneğin "ledon "göndereceğine "ldno" gibi hem eksik hemde yerleri değişik gönderiyor bilginize.
@@coskuntasdemirUA-cam github hesabınızdan aldım interrup kısmını ve main deki while içindeki kısmı diğer configurasyon ayarları önceden denediğim kodlar onlarda sorun yok yine bakacağım
@@coskuntasdemirUA-cam Zaman ayırdığınız için teşekkürler, verdiğiniz eğitim gerçekten benzerlerinden daha etkili umarım daha fazla içeriğe imkan bulursunuz.
Merhabalar, öncelikle paylaşımınız için teşekkür ederim, 2 gündür HAL function olmadan bir çözüm arıyordum sonunda buldum. Yalnız şu an receive yaparken kesmeye sadece bir kere giriyor. Bununla karşılaştınız mı veya bir çözüm öneriniz var mıdır? Reference manual de datayı okuyunca RXNE bitinin clear edildiği yazılıyor. Ben program çalışınca gelen ilk byte ı okuyorum ikincisi gelmiyor zaten kesmeye
@@coskuntasdemirUA-cam hocam interrupt a break point koymuştum byte byte göreyim diye. Ilk bytetan sonra ORE bit açılıyordu. Timeout gibi bir durum oluyordu sanırım. Okumayi kesmeyince düzeldi. Çok teşekkür ederim.
@@coskuntasdemirUA-cam yok, githubdan kopyalamadım, sadece usart2 yi nvic kısmından aktive ettim, generate code dedim. uart_driver.c 'nin gözükmesi için başka bir şey mi yapmam lazım? Serinizin önceki videolarında baktım sizde de gözükmüyo, herhalde bir şeyi eksik yapıyorum ama ne bir fikrim yok.
Hocam merhabalar, son örnekte ki kodun aynısını implemente ediyorum. while içerisini çalıştırıyor ancak terminal ekranda çıktı alamıyorum sebebi ne olabilir
Muhtelemen onu yapmam zor ama ring buffer olarak aratıp farklı kaynaklardan da faydalanırsan faydası olabilir çünkü konu mikrodenetleyici ya da STM32'lerden bağımsız bir "veri yapısı" konusu.
@@ilkeraykut7064 9600 baud dediğimizde yaklaşık olarak 1 ms'de bir bayt verinin gelmesi demek (Sürekli veri geliyorsa). Uygulamada veri yoğunluğuna göre değişir. Arada bir 1 bayt veri geliyorsa mesala tabi ki gerek yok.
@@coskuntasdemirUA-cam hocam derlediğimde " 'USART_TypeDef {aka struct }' has no member named 'ISR'; did you mean 'SR'?" hatası almaktayım. STM32F103C8T6
@@coskuntasdemirUA-cam Aynen dediğiniz gibi hocam ben de STM-34F407VG kullanıyorum, ISR register'ı yerine SR var. Aynı zamanda TDR ve RDR registerları yerine tek bir DR registerı bulunuyor.
Burada yaptığım örnekleri birebir almak yerine UART birimi nasıl çalışıyor, kesmeleri nedir ve nasıl çalışıyor vs.. gibi konuları genel olarak anlamak önemli. STM32'ler de olsa farklı modeller de olsa temel mantıkta tüm UART birimleri aynı çalışır. Ama tasarımında ve register adlandırmalarında farklar olabilir.
MaşaAllah anlatma ve ögrenme aşkini herzaman devam etsin. Taktir ediyorum
Hocam merhabalar ,
Öncelikle yaptığınız bu çalışma için teşekkür ederiz.Stm32 programlamaya yeni başlayan biri olarak soruyorum.Sizin stm32 video serisini bitirdikten sonra bizler neler kazanacaz veya hangi seviyede olacağız.Yani daha öğrenecek çok konu olacak mı? Teşekkürler...
Yeni başladığına göre bu seriyi uygulayarak ve anlayarak tamamlarsan çok şey öğreneceğini söyleyebilirim. Aynı zamanda öğrenmen gereken şeyler içinde de ufak bir bölüm olduğunu söyleyebilirim :)
bekliyoruz hocam iyi günler
emeğin için teşekkürler ilk örneğinizi yani dönel tampon olmayan örneğinizi keil da register seviyesinde kodladım ve sizin örneğinizide koduma uyarladım ama şöyle bir sıkıntı var data_flag 1 olmuyor bunuda debug yaptığımda break point attığımda gördüm kodu paylaşıcam hem siz hemde burdaki arkadaşlar bakmak isterlerse baksınlar. Tekrardan bu değerli bilgiler için çok teşekkürler özellikle register seviyesinde bu tür videoların gelmesini dört gözle bekliyorum. #include "stm32f0xx.h"
#include
uint8_t temp=0;
volatile uint8_t buffer[20];
uint8_t data_flag=0;
void USART2_IRQHandler(void)
{
if(USART2->ISR & (1RQR |=1
Merhaba etiketler kısmında rütbeli değeri yüksek etiket kullanmadığınızdan videonun Seo skoru 100 üzerinden 0 gözüküyor eğer Seo Ayarları oynatma listemdeki 4 videoyu izleyip eski yeni videolarınıza etiket eklerseniz Seo skorunuz 70 e kadar çıkabilir ve videolarınız aramalarda daha çok kelime ile üst sıralarda bulunacağında videolarınız daha fazla izlenir ve kanalınız daha hızlı gelişir, başarılarınızın devamını dilerim
Öncelikle video serileriniz ve emekleriniz için teşekkür ederim. 7:49 örnek projesinde USART->RDR 32 bitlik bir register, data_buffer ise 8 bitlik bir değişken olarak tanımlandı. RDR içerisindeki değeri data_buffer'a alırken neden (uint16_t) ile dönüştürülüyor?
Merhaba, öncelikle böyle sorular gelince, videoları dikkatlice izleyip uygulamaya çalışanlar da var diye görüp seviniyorum. Açıkçası bu örnekteki uint16_t dönüşümü gereksiz olmuş çünkü data_buffer 8 bit dizi olarak tanımlı. Github'daki örneklerde düzelteceğim. Teşekkürler.
peki video yu izlerken isletim sisteminde vcpu ring ile alakali bir hata almam ne olabilir :) hayatimda ilk defa gordum bu hatayi bir an sasirdim sanki beni bir konuya dogru yonlendirmek istiyor :) hocam egitimin bir parcasimi buda linux ile bir isbirliginizmi var 😁😁
ayrıca tek harf gönderdiğimizde sıkıntı yok ama bir string gönderdiğimizde karışık ve eksik atıyo örneğin "ledon "göndereceğine "ldno" gibi hem eksik hemde yerleri değişik gönderiyor bilginize.
Melih tüm kodları çalıştırdığında böyle bir durum olmaması lazım, örnek kodları Github hesabımda bulabilirsin.
@@coskuntasdemirUA-cam github hesabınızdan aldım interrup kısmını ve main deki while içindeki kısmı diğer configurasyon ayarları önceden denediğim kodlar onlarda sorun yok yine bakacağım
@@coskuntasdemirUA-cam coşkun bey hatayı buldum tabi bu hata benim hatam kod çalışıyor emeğinize sağlık.
Hocam, bu serinin devamını çekmeyi planlıyor musunuz?
Evet, UART konusu bitti, timer'larla devam etmeyi planlıyorum.
@@coskuntasdemirUA-cam Zaman ayırdığınız için teşekkürler, verdiğiniz eğitim gerçekten benzerlerinden daha etkili umarım daha fazla içeriğe imkan bulursunuz.
Otomatik silah örneği çok iyi :D
Burada haberleşme için yazdığımız mekanizmaya silah örneği çok uyuyor :)
Evet hocam :)
Merhabalar, öncelikle paylaşımınız için teşekkür ederim, 2 gündür HAL function olmadan bir çözüm arıyordum sonunda buldum. Yalnız şu an receive yaparken kesmeye sadece bir kere giriyor. Bununla karşılaştınız mı veya bir çözüm öneriniz var mıdır?
Reference manual de datayı okuyunca RXNE bitinin clear edildiği yazılıyor. Ben program çalışınca gelen ilk byte ı okuyorum ikincisi gelmiyor zaten kesmeye
Betül dediğin gibi RXNE bitini sıfırlıyorsan ya 2. veri gelmiyor ya da farklı bir problem var.
@@coskuntasdemirUA-cam hocam interrupt a break point koymuştum byte byte göreyim diye. Ilk bytetan sonra ORE bit açılıyordu. Timeout gibi bir durum oluyordu sanırım. Okumayi kesmeyince düzeldi.
Çok teşekkür ederim.
Hardware in the loop hakkında detaylı bir video çekermisiniz
Çok kullandığım bir sistem değil. Zamanında İHA çalışmalarında kullanmıştık.
bende neden uart_driver.c yok? Yardım edebilir misiniz?
Tam olarak ne yaptığını bilmediğimden bana cevap vermem zor. Dosyayı kendin oluşturdun mu? Ya da github hesabımdan direk indirip mi kullanıyorsun?
@@coskuntasdemirUA-cam yok, githubdan kopyalamadım, sadece usart2 yi nvic kısmından aktive ettim, generate code dedim. uart_driver.c 'nin gözükmesi için başka bir şey mi yapmam lazım? Serinizin önceki videolarında baktım sizde de gözükmüyo, herhalde bir şeyi eksik yapıyorum ama ne bir fikrim yok.
@@theblitz1687 uart-driver.c dosyası kendi oluşturduğumuz bir dosya örneklerle beraber geliyor, generate edince gelmiyor
@@coskuntasdemirUA-cam o dosyayı oluşturmadan da bu örnekteki kodları yazmak mümkün olur mu? Daha mı karışık olur sadece?
Hocam merhabalar, son örnekte ki kodun aynısını implemente ediyorum. while içerisini çalıştırıyor ancak terminal ekranda çıktı alamıyorum sebebi ne olabilir
Önceki örnekleri çalıştırıp terminalde çıktı alabiliyor musun?
@@coskuntasdemirUA-cam Evet hocam
@@emreelma9582 Kodlarda bir eksik olabilir o zaman, kodun tümünü Github hesabımda bulabilirsin.
Hocam ring buffer kısmı biraz karıştı bununla ilgili bir örnek daha yapabilir misiniz?
Muhtelemen onu yapmam zor ama ring buffer olarak aratıp farklı kaynaklardan da faydalanırsan faydası olabilir çünkü konu mikrodenetleyici ya da STM32'lerden bağımsız bir "veri yapısı" konusu.
@@coskuntasdemirUA-cam bu ring buffer 9600 baudratelerde kullanılması çok gerekli midir?115200 gibi baudratelerde mi kullanılmalı?
@@ilkeraykut7064 9600 baud dediğimizde yaklaşık olarak 1 ms'de bir bayt verinin gelmesi demek (Sürekli veri geliyorsa). Uygulamada veri yoğunluğuna göre değişir. Arada bir 1 bayt veri geliyorsa mesala tabi ki gerek yok.
@@coskuntasdemirUA-cam hocam o zaman 1 ms altındaki değerler için kullanmalıyız diyebilir miyiz
Dediğim gibi uygulamana göre değişir ama bana göre her zaman kullanmakta fayda var, diğer türlü illa ki veri kaçırma olacaktır bir noktadan sonra.
Hocam USART2 -> ISR; formatı STM32F103xx de çıkmıyor. Sanırım donanımda farklılık olabiliyor mu?
İşlemci modelleri arasında farklar olabiliyor. Ayrıca bazen kod tamamlama özelliği de çalışmabiliyor, kodu derleyip deneyebilirsin bunu bir de.
@@coskuntasdemirUA-cam hocam derlediğimde " 'USART_TypeDef {aka struct }' has no member named 'ISR'; did you mean 'SR'?" hatası almaktayım. STM32F103C8T6
@@mustafacagraltindal İsimlendirme farkı olabilir, kendi modelindeki isimleri kontrol etmen gerekiyor, SR olabilir register'ın adı.
@@coskuntasdemirUA-cam Aynen dediğiniz gibi hocam ben de STM-34F407VG kullanıyorum, ISR register'ı yerine SR var. Aynı zamanda TDR ve RDR registerları yerine tek bir DR registerı bulunuyor.
Burada yaptığım örnekleri birebir almak yerine UART birimi nasıl çalışıyor, kesmeleri nedir ve nasıl çalışıyor vs.. gibi konuları genel olarak anlamak önemli. STM32'ler de olsa farklı modeller de olsa temel mantıkta tüm UART birimleri aynı çalışır. Ama tasarımında ve register adlandırmalarında farklar olabilir.