在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...