stm32 snprintfte double ve float sorunu

TunahanC

SbX
Katılım
31 Mayıs 2024
Mesajlar
345
Elimde bu linkte bulunan stm32 geliştirme kartı var. MCU-MPU settings kısmından "-u_printf_float" kutucuğunu aktif ettiğim halde snprintf içerisine float ya da double değer yazdıramıyorum. Normal discovery board kullanırken bu tür bir sorun olmuyor. Örnek olarak aşağıdaki arrayda "B:123.45 Y: 234.56" gibi bir değer yazması gerekli fakat yazmıyor. GNU-GCC seviyesinde bir sorun olabilir mi? Ya da MCU'nun kendisinde böyle sorun mümkün müdür? İnternette de bunlardan bahsedilmiş biraz ama çözemedim. Varsa çözüm yöntemlerinizi bekliyorum.
Arr.JPG
 
Bu kullanılan C runtime library ile ilgili. Linker ayarlarında, float printf desteği olan C runtime library seçmen lazım. Ama tam olarak nasıl yapılacağı kullanılan IDE ye göre değişir.
 
Bu kullanılan C runtime library ile ilgili. Linker ayarlarında, float printf desteği olan C runtime library seçmen lazım. Ama tam olarak nasıl yapılacağı kullanılan IDE ye göre değişir.
Hocam CubeIDE standart ayarlarında kullanıyorum ama bir kurcalayayım belki bir şey bulurum.
 
Reduced C (--specs=nano.specs) kullanıyorum. Kodu aldığım diğer projeye baktım o da aynı runtime library'i kullanıyor. Ben bu kodu stm32f407 disc boardda çalıştırdım aslında böyle bir hata vermesi çok garip geliyor bana.
 
Reduced C (--specs=nano.specs) kullanıyorum. Kodu aldığım diğer projeye baktım o da aynı runtime library'i kullanıyor.

Aynen. float destekleyen kütüphaneyi seçmen gerekecek.

Bir de printf desteği "heap" de istiyor. Eğer normalde senin firmware'de heap'a ihtiyacın olmadı ise, belirli bir heap de ayırman lazım. Ben 8192 byte ayırmıştım ARM M3 için ve sorunsuz kullandım.
 
Aynen. float destekleyen kütüphaneyi seçmen gerekecek.

Bir de printf desteği "heap" de istiyor. Eğer normalde senin firmware'de heap'a ihtiyacın olmadı ise, belirli bir heap de ayırman lazım. Ben 8192 byte ayırmıştım ARM M3 için ve sorunsuz kullandım.
Şu an buna vaktim kalmadı ama yarın ilk iş buna bakacağım teşekkürler.
 
çözümü burada anlatılmış:
Yok bunu biliyorum. Bu açılmadığı zaman CubeIDE zaten uyarı veriyor. Benim hatam tamamen snprintf içerisinin float ile yazılamıyor olması. @taydin hocamın dediği heap ayarlarından min heap 0x1000 max heap 0x2000 olarak ayarladım fakat sorun hala devam ediyor. Neyse pes etmek yok.
 
Son düzenleme:
Sorunu çözüldü bu arada. Sanırım bu programı ilk debug ettiğim zaman "-u_printf_float" kutucuğu seçili değildi. Debug ve Release'yi sildim heap ayarlayıp tekrar debug yaptığım zaman çözüldü. İşin ilginç tarafı bir çok kez clean-build yapmıştım aslında demek ki tam "clean" yapmıyormuş.
 

Forum istatistikleri

Konular
8,387
Mesajlar
137,744
Üyeler
3,321
Son üye
osarbusa

Son kaynaklar

Son profil mesajları

mechanic ayhanarican mechanic wrote on ayhanarican's profile.
https://www.allmystery.de almanca biliyorsan burada araştır. Yapay zekada çeviriyor gerçi.
Almanların matematik bilgisi daha iyi oluyor.
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Back
Top