關於微控制器中的u8,u16等問題

2021-09-13 19:49:23 字數 1362 閱讀 4849

在keil mdk 開發環境裡,比如乙個 無符號32位整形資料會有很多種表示方法:

1.unsigned int 32 (c語言標準表達方法)        2.uint32_t ;            3.u32;  這三種方式都是在表達同乙個意思。可為什麼st的開發人員要搞的這麼亂呢? 其實st 搞這麼多花樣,無非是想開發人員在寫**時定義資料型別能少寫幾個符號,然後又因為前後版本公升級,為了相容舊版本(主要是v2.0)才會出現這麼多表示方法。不管他怎麼換,都是基於標準c來的,看清楚以下幾個檔案你就ok了:core_cm3.h  ;stm32f10x.h  ; stdint.h;  其中每個檔案大概作用如下:

stdint.h 這裡放著c語言的標準表達方式//第36行開始

typedef   signed          char       int8_t;  //  標準表達方式 signed char 被等同於 int8_t;

typedef   signed short  int         int16_t;

typedef   signed           int         int32_t;//在32位環境裡,int代表4個位元組32位!!

typedef   signed       __int64     int64_t;

typedef unsigned              char       uint8_t;

typedef unsigned short     int         uint16_t;

typedef unsigned              int         uint32_t;

typedef unsigned          __int64     uint64_t;

……stm32f10x.h這個檔案主要是為了相容舊版本吧

typedef   uint32_t   u32;///32位

typedef   uint16_t   u16;///16位

typedef   uint8_t     u8;///8位

……core_cm3.h檔案主要針對動態 靜態 變數修飾符做出型別擴充套件

#ifdef __cplusplus

#define   __i     volatile            

#else

#define   __i     volatile const      

#endif

#define     __o     volatile            

#define     __io    volatile

……

關於STM32庫函式中,u8 u16 等的定義

檔案內定義 typedef uint32 t u32 typedef uint16 t u16 typedef uint8 t u8 無符號 typedef int32 t s32 typedef int16 t s16 typedef int8 t s8 有符號 exact width unsig...

關於微控制器的中斷問題

中斷,顧名思義就是停止當前正在做的一切事物。微控制器中的中斷系統包括中斷發生,中斷響應和中斷服務,以及中斷返回。是指cpu在接受到訊號以後暫停當前任務轉而去迅速完成另乙個任務,完成任務後在返回至之前的任務的過程。而當下列三個條件全部能滿足時cpu才有可能相應中斷 中斷源有中斷請求 此中斷源的中斷允許...

STM8微控制器的FLASH儲存u16型別的陣列

往flash寫資料 void flash writenbyte uint16 t pbuffer,uint32 t writeaddr,uint8 t nbyte flash lock flash memtype data 上鎖 讀取flash裡面的資料 void flash readnbyte u...