1樓:匿名使用者
u8是unsigned char,u16是unsigned short,u32是unsigned long。
u8,u16,u32都是c語言資料型別,分別代表8位,16位,32位長度的資料型別,一個位元組是8位,所以u8是1個位元組,u16是2個位元組,u32是4個位元組。
可以在stm32庫標頭檔案中找到資料型別的宣告
在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;
擴充套件資料
cpu按照其處理資訊的字長可以分為:8位微處理器、16位微處理器、32位微處理器以及64位微處理器等。字、半字是根據處理器的特性決定的,位元組則都是8bit。
stm32是32bit處理器,所以它的字是32bit的(一次處理4位元組長度的資料),半字自然就是16bit(2位元組)。儲存半字型別資料的暫存器由u16型別的變數訪問,但是如果用u8型別變數只能訪問該資料低8位,用u32型別變數讀的時候沒問題,寫的時候會因編譯器的不同而出現偏差。
stm32和傳統的arm相比最大的好處就是不需要對齊,三種型別的資料可以在記憶體中無縫的存放。而傳統的arm7或arm9等是照著地址對齊的,就是說不管8bit或者16bit的資料都要佔用4個位元組的空間,這樣的結果就是造成記憶體的浪費。
2樓:匿名使用者
u8,u16,u32都是unsigned char型別,不過u8是一個位元組的,u16 是2位元組,u32是4位元組
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __int64 int64_t;
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
3樓:may一米陽光
標頭檔案裡有定義 你看看 我也不記得了
4樓:life粉色的小豬
都是定義位元組的,只不過定義的位元組個數不同,c語言相關資料裡應該都有說。
stm32串列埠在程式中配置時STM32串列埠在程式中配置時PA9,USARTTX和PA10,USARTRX為什麼工作模式配置成複用推輓輸出和浮空輸入??
usart串列埠,首先tx是作為輸出的,邏輯上輸出 的資料都是0或者1,也就是由高低電平來表示,推輓就是能穩定輸出1或者0。而複用,是因為這個io受的是內部的的usart模組來控制,並非是gpio暫存器來控制。至於rx設定為浮空輸入那就很好理解了,首先接收的肯定是要設定為輸入,才能檢測外界的電平,其...
請教,STM32的ADC輸入阻抗問題
加了一個0.1uf的電容,然後用239.5取樣週期,可以基本上得到期望的電壓。有個問題要注意,如果這個ad要在這個直流訊號和其它變化較快的訊號進行切換,測其它變化較快的訊號會不太準。為什麼stm32fxx的ad輸入阻抗這麼低 假如你要測量的資料很小很小,但是你的輸入阻抗卻很大,那麼你的電流講全部流到...
誰來下stm32的程式框架,誰來分享下STM32的程式框架?
2012年時候因為專案需要寫了個小型實時系統,專用於stm32的,後來沒事做了大修改,取名udoos,應該是你所謂的框架,很另類。準備開源,有興趣的話交個朋友,切磋切磋。uint32 t的,uint16 t有應該是32位和16位資料型別定義,你看看巨集定義應該能夠找到,io uint16 t有 ba...