merhaba forum,
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
uint8_t strgoing[50]={}
sprintf(strgoing,"%f",5.000); bu sayıyı strgoing içine yazmıyor sadece f harfini basıyor
sprintf(strgoing,"%d",5000); bu sayıyı 5000 olarak yazıyor görüyorum
kaçırdığım bişey mi var bir türlü yazdıramadım
teşekkür
"%.3f"
teşekkür onu da denedim
@serkan hocam en basit halini göreyim diye %f yazdım
büyük F harfi de denedim %5.3f de denedim olmadı
Hocam kullandığınız IDE ile ilgili olmasın.IDE nizin ayarlarını bi kontrol edin.
https://muhittinkaplan.com/2013/01/18/stm32-usart-ve-sprintf-printf/
Aklınızda olsun, sprintf()'i float sayılar ile multithread bir uygulamada kullanırsanız sıkıntı çıkabilir. Mesela FreeRTOS'ta iki thread aynı anda bu fonksiyona girerse.
Bunun sebebi bu fonksiyonun float ile işlem yaparken arka planda malloc() kullanıyor oluşu. Aslında bu tek başına bir sorun değil. Ancak malloc'a erişimin thread safe olması gerekiyor ve anladığım kadarıyla ST'nin hazır kütüphanelerinde ve örnek FreeRTOS kodlarında, gerekli bazı önlemler atlanmış.
Konu ile ilgili ST forumlarındaki bir tartışma (https://community.st.com/s/question/0D50X0000BB1eL7SQJ/bug-cubemx-freertos-projects-corrupt-memory) ve bu olayı çözmeyi kafaya koymuş bir adamın çalışmaları (https://nadler.com/embedded/newlibAndFreeRTOS.html).
Sorunun devam edip etmediğinden emin değilim.
Alıntı yapılan: M_B - 21 Nisan 2022, 17:39:19Hocam kullandığınız IDE ile ilgili olmasın.IDE nizin ayarlarını bi kontrol edin.
hocam hangi IDE ayarlarına bakmam gerekir
teşekkür
Hocam https://community.st.com/s/question/0D50X00009XkYaySAF/how-to-print-float-value-with-printf-in-truestudio-
Linkteki ayarlardan bahsetmiştim.
Merhaba,
Standart giriş çıkış fonksiyonları oldukça maliyetli olabiliyorlar. Gömülü sistemlerde bunlar için oldukça hafif, dinamik bellek kullanmayan alterntifler var, onları kullanmak uygun. Örneğin
http://elm-chan.org/fsw/strf/xprintf.html
Bu arada forum linkini yanlış vermişim, şimdi düzelttim.
Alıntı yapılan: M_B - 21 Nisan 2022, 21:03:28Hocam https://community.st.com/s/question/0D50X00009XkYaySAF/how-to-print-float-value-with-printf-in-truestudio-
Linkteki ayarlardan bahsetmiştim.
herkese teşekkür
@M_B hocamın dediği gibi small printf seçince düzeldi