嵌入式C語言基礎-創(chuàng)新互聯(lián)

1.位操作

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的堆龍德慶網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

(1)位設值

?清零:GPIOA->BSRRL &=0XFF0F; //將第 4-7 位清 0

?設值:GPIOA->BSRRL |=0X0040;//設置相應位的值,不改變其他位的值

(2)移位提高代碼的可讀性

將 ODR 寄存器的第 pinpos 位設置為 1

?GPIOx->ODR = (((uint32_t)0x01)<< pinpos);

(3)~取反操作使用技巧

設置某一位的值為 0,同時 其他位都保留為 1。

??TIMx->SR = (uint16_t)~TIM_FLAG;

2.define 宏定義

define 是 C 語言中的預處理命令,它用于宏定義,可以提高源代碼的可讀性,為編程提供 方便。常見的格式:

#define 標識符 字符串

定義標識符 PLL_M 的值為 8。

#define PLL_M 8

3.ifdef 條件編譯

單片機程序開發(fā)過程中,經(jīng)常會遇到一種情況,當滿足某條件時對一組語句進行編譯,而 當條件不滿足時則編譯另一組語句。條件編譯命令最常見的形式為:

#ifdef?????????標識符

程序段 1

#else

程序段 2

#endif

它的作用是:當標識符已經(jīng)被定義過(一般是用#define 命令定義),則對程序段 1 進行編譯, 否則編譯程序段 2。 其中#else 部分也可以沒有,即:

4.extern 變量申明

C 語言中 extern 可以置于變量或者函數(shù)前,以表示變量或者函數(shù)的定義在別的文件中,提示編 譯器遇到此變量和函數(shù)時在其他模塊中尋找其定義。

extern? u16? USART_RX_STA;

這個語句是申明 USART_RX_STA 變量在其他文件中已經(jīng)定義了,在這里要使用到。所以,你肯定 可以找到在某個地方有變量定義的語句:

u16? USART_RX_STA;

我們希望在main.c的 changeId(void)函數(shù)中使用變量id,這個時候我們就需要在main.c 里面去申明變量 id 是外部定義的了,因為如果不申明,變量 id 的作用域是到不了 main.c 文件 中。

5.typedef 類型別名

typedef 用于為現(xiàn)有類型創(chuàng)建一個新的名字,或稱為類型別名,用來簡化變量的定義。 typedef 在 MDK 用得最多的就是定義結(jié)構(gòu)體的類型別名和枚舉類型了。

typedef struct?

{

__IO uint32_t MODER;

__IO uint32_t OTYPER;

? ......

}GPIO_TypeDef;

Typedef 為結(jié)構(gòu)體定義一個別名 GPIO_TypeDef,這樣我們可以通過 GPIO_TypeDef 來定義結(jié)構(gòu)體 變量:

GPIO_TypeDef _GPIOA,_GPIOB;

6. 結(jié)構(gòu)體

(1)結(jié)構(gòu)體定義

??結(jié)構(gòu)體就是將多個變量組合為一個有機的整體。

typedef? struct

{

uint32_t USART_BaudRate;

uint16_t USART_WordLength;

? 。。。

}USART_InitTypeDef;

(2)結(jié)構(gòu)體使用

我們在初始化串口的時候入口參數(shù)就可以是 USART_InitTypeDef 類型的變量或者指針變 量了,MDK 中是這樣做的:

?void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);

使用結(jié)構(gòu)體組合參數(shù),可以提高代碼的可讀性,不會覺得變量定義混亂。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前名稱:嵌入式C語言基礎-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://muchs.cn/article36/csgpsg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、品牌網(wǎng)站制作、網(wǎng)站策劃Google、App開發(fā)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設