STM32常用C語言基礎知識點

2021-10-03 07:08:49 字數 1728 閱讀 3255

1.位操作

c語言支援下列6種位操作符

.&:按位與

.| : 按位或

.^ : 按位異或

.~:取反

.<<:>

.>>:左移

注:操作符不包括左小角的小點,請忽略小點

2.define 巨集定義

define是c語言種的預處理命令,可以提高源**的可讀性,為程式設計提供方便。

常見格式: #define 識別符號 字串

3.ifdef 條件

#ifdef 識別符號
程式段1

#else

程式段2

#endif

他的作用是:當識別符號已經被定義過(一般是用#define命令定義),則對程式段1進行編譯,否則對程式段2進行編譯。

注:其中#else 程式段2可以沒有

另一形式

#if 識別符號 

程式段1

#endif

如果識別符號已經被定義過,那麼執行程式段1

4.extern變數申明

extern可以置於變數或者函式前,表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。

注意:extern申明變數可以多次,但定義只有一次。

5.結構體

宣告結構體型別格式

格式:

struct 結構體名

變數名列表;

例項:struct _gpio

**注:變數名列表結構體宣告的結構體變數,可不寫,以後再定義*

*例如:struct _gpio age,number;//就定義了兩個結構體變數age和number

定義結構體變數後,結構體成員變數的引用方法是

例如我們上面定義了的age結構體變數,我要輸出他的成員變數tser

那麼應該寫為

printf

("%d"

,age.tser)

;//也就是 結構體變數名.成員變數名,沒什麼特殊的

定義結構體指標變數

依然基於上面的_gpio結構體

定義結構體指標變數:struct _gpio *age;

是的,只是結構體變數名前面加了*,但是要訪問結構體變數成員時應該這樣寫

printf

("%d"

,age->tser)

;

6.typedef 型別別名

typedef 用於為現有型別建立乙個新的名字,或成為型別別名,用來簡化變數的定義。typedef在keil5中用的最多的就是定義結構體的型別別名和列舉型別。

struct _gpio

此時我們定義乙個上面的結構體應該這樣定義

struct _gpio age;

但是我們使用typedef後

typedef

struct

gpio

此時我們定義乙個上面的結構體可以這樣

gpio age;

此時我們就定義了乙個叫age的結構體變數

STM32的時鐘基礎知識

一 不使用外部晶振時,osc in和osc out的原理圖設計 1 對於少於100個引腳的產品有兩種方法 1.1 osc in和osc out分別通過10k的電阻接地 提高emc效能。1.2 重對映osc in和osc out為pd0和pd1,配置為推挽輸出並輸出低電平 減少功耗且節省兩個外部電阻。...

C語言知識點(三) 基礎知識

防止該標頭檔案被重複引用 對於 include,編譯器從標準庫路徑開始搜尋 filename.h 對於 include filename.h 編譯器從使用者的工作路徑開始搜尋 filename.h 1 引用本身是變數的別名,對引用的操作就是對變數本身的操作 2 引用必須要被初始化,指標可以不被初始化...

c語言基礎知識點(一)

程式執行過程 1.編譯形成目標 2.鏈結鏈結函式庫,形成可執行的二進位制機器 3.執行在特定機器環境下執行c程式。注釋兩種方式的注釋 單行注釋 多行注釋 作用1.解釋說明 2.遮蔽 除錯 是臨時將某部分 注釋掉,注釋掉的內容不會編譯到程式中 commond 注釋快捷鍵 c語言 第三章 變數賦值是要注...