Mrb. arkadaşlar
stm32f407 discovery kartımın flash hafızasına float tipinde bir değer yazıp okumak istiyorum. ancak mevcut microc kütüphanesinde böyle bişey bulamadım. hafızaya float tipinde bir değişken yazma konusunda yardımlarınızı rica ederim ...
Sayi float da olsa sonucta hafizada byte byte siralanmis ardisil verilerden olusuyor.
Dolayisi ile hic sorun yok.
Float sayiyi rama yaz. Sada sonra ramdaki datayi byte byte oku. Float sayinin kac byte yer kapladigi zaten belli.
konuyu daha iyi almak için bir örnek kod ile anlatmanız mümkünmü hocam
A float degisken olsun.
P diye byte pointer olustur.
P ye A float degiskeninin adresini yukle.
Sonra da P pointerinin gosterdigi veriyi oku. Bir sonrakini oku, bir sonrakini oku...
Kac kez okuyacagin float degiskenin hangi standartta olduguna bagli muhtemelen 4 bytedir. Ya da dogrudan sizeof ile float degiskenin boyunu ogren. O kadar byte oku.
Hos olmayan bir diger yontem ise;
Float degeri stringe cevir. Flasha stringi yaz.
Okurken de string oku floata cevir.
packed yapmaya dikkat et
typedef __packed union {
struct {
float data;
};
struct {
uint8_t dataBytes[4];
};
}FloatToBytes;
Merhaba,
Burada anlatılan yöntem işinizi görecektir.
https://ozcanfatih.wordpress.com/2016/02/01/c-dilinde-union-yapisi-ve/
çok tesekurler arkadaslar