有關(guān)stm32的問(wèn)題,程序里面的u8、u16這些是什么意思啊
u8是unsigned charu16,u16是unsigned short,u32是unsigned long。
u8,u16,u32都是C語(yǔ)言數(shù)據(jù)類型,分別代表8位,16位,32位長(zhǎng)度的數(shù)據(jù)類型,一個(gè)字節(jié)是8位,所以u(píng)8是1個(gè)字節(jié),u16是2個(gè)字節(jié),u32是4個(gè)字節(jié)。
可以在stm32庫(kù)頭文件中找到數(shù)據(jù)類型的聲明
在stdint.h中:
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
在stm32f10x.h 中:
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
擴(kuò)展資料
CPU按照其處理信息的字長(zhǎng)可以分為:8位微處理器、16位微處理器、32位微處理器以及64位微處理器等。字、半字是根據(jù)處理器的特性決定的,字節(jié)則都是8bit。
stm32是32bit處理器,所以它的字是32bit的(一次處理4字節(jié)長(zhǎng)度的數(shù)據(jù)),半字自然就是16bit(2字節(jié))。存儲(chǔ)半字類型數(shù)據(jù)的寄存器由u16類型的變量訪問(wèn),但是如果用u8類型變量只能訪問(wèn)該數(shù)據(jù)低8位,用u32類型變量讀的時(shí)候沒(méi)問(wèn)題,寫的時(shí)候會(huì)因編譯器的不同而出現(xiàn)偏差。
stm32和傳統(tǒng)的arm相比最大的好處就是不需要對(duì)齊,三種類型的數(shù)據(jù)可以在內(nèi)存中無(wú)縫的存放。而傳統(tǒng)的arm7或arm9等是照著地址對(duì)齊的,就是說(shuō)不管8bit或者16bit的數(shù)據(jù)都要占用4個(gè)字節(jié)的空間,這樣的結(jié)果就是造成內(nèi)存的浪費(fèi)。
參考資料來(lái)源:stdint.h - C++ Reference
參考資料來(lái)源:Header Files : stm32f10x.h
u8 是 unsigned charu16 是 unsigned shortu32 是 unsigned int 這些都是變量類型,你可以找本c語(yǔ)言的書(shū)看看
1.《u16,有關(guān)stm32的問(wèn)題,程序里面的u8、u16這些是什么意思啊》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《u16,有關(guān)stm32的問(wèn)題,程序里面的u8、u16這些是什么意思啊》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/tiyu/1921303.html