《嵌入式操作系統(tǒng)》課件-課前任務(wù) 0.5 32開發(fā)C語言結(jié)構(gòu)體與指針枚舉_第1頁
《嵌入式操作系統(tǒng)》課件-課前任務(wù) 0.5 32開發(fā)C語言結(jié)構(gòu)體與指針枚舉_第2頁
《嵌入式操作系統(tǒng)》課件-課前任務(wù) 0.5 32開發(fā)C語言結(jié)構(gòu)體與指針枚舉_第3頁
《嵌入式操作系統(tǒng)》課件-課前任務(wù) 0.5 32開發(fā)C語言結(jié)構(gòu)體與指針枚舉_第4頁
《嵌入式操作系統(tǒng)》課件-課前任務(wù) 0.5 32開發(fā)C語言結(jié)構(gòu)體與指針枚舉_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

STM32開發(fā)C語言結(jié)構(gòu)體與指針枚舉課前任務(wù)

目錄結(jié)構(gòu)體結(jié)構(gòu)體指針枚舉類型一、結(jié)構(gòu)體結(jié)構(gòu)體是一個(gè)可以包含不同數(shù)據(jù)類型成員的集合體,它是一種可以自己定義的數(shù)據(jù)類型。

struct結(jié)構(gòu)名

對象名;

//“struct結(jié)構(gòu)名”就是結(jié)構(gòu)體的數(shù)據(jù)類型名一、結(jié)構(gòu)體例如:在STM32標(biāo)準(zhǔn)外設(shè)庫的GPIO驅(qū)動(dòng)庫頭文件“stm32f10x_gpio.h”中,可以找到GPIO初始化使用的結(jié)構(gòu)體GPIO_lnitTypeDef。一、結(jié)構(gòu)體typedefstruct{uintl6_tGPIO_Pin;GPIO_Mode_TypeDefGPIO_Mode;GPIOSpeed_TypeDefGPIO_Speed;}GPIO_InitStructure;例如:第一個(gè)成員為GPIO引腳第二個(gè)成員的含義為指定GPIO引腳配置的工作模式第三個(gè)成員的含義是指定GPIO引腳輸出的最高頻率一、結(jié)構(gòu)體訪問結(jié)構(gòu)體對象成員形式

訪問結(jié)構(gòu)體對象成員時(shí)使用運(yùn)算符“點(diǎn)”,該運(yùn)算符稱為句點(diǎn)運(yùn)算符,具體形式是“對象名.成員名”。一、結(jié)構(gòu)體訪問結(jié)構(gòu)體對象成員形式定義結(jié)構(gòu)體變量及賦值例如:GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;二、結(jié)構(gòu)體指針結(jié)構(gòu)體指針定義

是一個(gè)結(jié)構(gòu)體變量在內(nèi)存中的地址,使用指針而不是直接使用變量,往往會(huì)帶來數(shù)據(jù)傳遞效率上的提升和靈活。二、結(jié)構(gòu)體指針結(jié)構(gòu)體變量作為函數(shù)參數(shù)的方法

相同結(jié)構(gòu)體的結(jié)構(gòu)體變量之間是可以相互賦值的,結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù),也可以作為函數(shù)的返回值。第一種是將結(jié)構(gòu)體變量直接作為函數(shù)參數(shù),程序直觀易懂,但效率不是太高;第二種是將指向結(jié)構(gòu)體變量的指針作為函數(shù)參數(shù),這種方法開銷較小,效率較高。voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)二、結(jié)構(gòu)體指針結(jié)構(gòu)體變量作為函數(shù)參數(shù)的方法

相同結(jié)構(gòu)體的結(jié)構(gòu)體變量之間是可以相互賦值的,結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù),也可以作為函數(shù)的返回值。第一種是將結(jié)構(gòu)體變量直接作為函數(shù)參數(shù),程序直觀易懂,但效率不是太高;第二種是將指向結(jié)構(gòu)體變量的指針作為函數(shù)參數(shù),這種方法開銷較小,效率較高。voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)結(jié)構(gòu)體指針二、結(jié)構(gòu)體指針結(jié)構(gòu)體指針成員賦值GPIO_InitStruct->GPIO_Mode==GPIO_Mode_Out_PP;

三、枚舉類型宏指令“#define”三、枚舉類型#define MON l#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7枚舉型是一個(gè)集合三、枚舉類型枚舉型是一個(gè)集合關(guān)鍵字為“enum”enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};#define MON l#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7枚舉成員三、枚舉類型例如:typedefenum{GPIO_Speed_10MHz=1,GPI0_Speed_2MHz,GPI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論