stm32 snprintfte double ve float sorunu

TunahanC

SbX
Katılım
31 Mayıs 2024
Mesajlar
134
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
7,148
Mesajlar
121,500
Üyeler
2,893
Son üye
_AlfaTan_

Son kaynaklar

Son profil mesajları

az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Back
Top