在嵌入式實際應用中,大多數的協議結構定義中,都會使用union型別來定義。使用聯合來將較大的物件分解成組成這個物件的各個位元組。
typedef uniondata;
可以使用data.udata陣列來訪問data.bytes[4]欄位的各個位元組。
注意:char 佔 1 位元組
short 佔 2 位元組,
int 、float 佔 4 位元組,
double 佔8 位元組
使用用法:在利用 flash中儲存資料資訊時
#include "stm32f0xx_flash.h"
#define flash_page_size
((uint32_t)0x00000400)
#define flash_user_start_addr
((uint32_t)0x0800fc00)
#define flash_user_end_addr
((uint32_t)0x08010000)
//定義需儲存使用者設定資料的結構
typedef struct //構造結構體
personal_information_typedef;
//為了方便變數的使用和在flash裡面的存貯,定義一聯合(
union
)typedef union
settings_information;
//申明變數,注意一定要四位元組對齊
volatile settings_information user_seting;
void user_infor_read(void)
}由於 user_seting
.dataall[i] ,與 user_seting.infor
datai 共用一塊記憶體,
所以可以通過:
user_seting.
infor
datai .name;
user_seting.
infor
datai .height;
user_seting.
infor
datai .weight;
訪問資料結構的資料
嵌入式中 volatile 用法
volatile 影響編譯器編譯的結果,指出,volatile 變數是隨時可能發生變化的,與volatile變數有關的運算,不要進行編譯優化,以免出錯,vc 在產生release版可執行碼時會進行編譯優化,加volatile關鍵字的變數有關的運算,將不進行編譯優化。例如 volatile int i...
嵌入式系統
嵌入式開發的相關領域 搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關 領域包括 a 數字影象壓縮技術 這是嵌入式最重要最熱門的應用領域之一,主要是應掌握mpeg 編譯碼演算法和技術,如 pda 高精電視 機頂盒等都涉及mpeg高速解碼問 題。b 通訊協議及程式設計技術 這...
嵌入式系統
嵌入式系統就是計算機系統的一類,就是被塞進其他裝置的計算機作業系統。我的嵌入式老師只用了三個詞語就總結了嵌入式系統的精髓 專用的可裁剪的 計算機系統。包括嵌入式軟體開發的知識體系和背景 先說背景 計算機,領域內,知識體系,按層次分,可以分為 其中 此處,暫且不討論上層的純軟體,以及底層的硬體,只是簡...