風(fēng)馳stm8s開發(fā)板教程4庫函數(shù)的實現(xiàn)說明_第1頁
風(fēng)馳stm8s開發(fā)板教程4庫函數(shù)的實現(xiàn)說明_第2頁
風(fēng)馳stm8s開發(fā)板教程4庫函數(shù)的實現(xiàn)說明_第3頁
風(fēng)馳stm8s開發(fā)板教程4庫函數(shù)的實現(xiàn)說明_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

風(fēng)STM8大家好,我們風(fēng)馳嵌入式開發(fā)團隊,這是我們的QQ:知行者ling iCreateSTM8開發(fā)群[A] iCreateSTM8開發(fā)群 [火熱加入中iCreateSTM8開發(fā)群 [火熱加入中iCreateSTM8開發(fā)群 [火熱加入中iCreateSTM8開發(fā)群 [火熱加入中風(fēng)馳STM8開發(fā)板的例程是基于ST庫來實現(xiàn),所以,非常有必要說明一很多人一開始接觸ST公司的的時候,不管是STM8還是STM32,都不太51的時候都是直接操作寄存器的,想看,如果到了32位的CPU下面以GPIO為例說明一下庫函數(shù)的實現(xiàn)思路。STM8S20XX中文數(shù)據(jù)手冊.pdf309GPIOA可以看到,端口A0x5000所表示的。0x5000這個數(shù)字我們就明白了。接著在stm8s.h頭文件中有這樣一個類型定義:5個變量,代表GPIO5個寄存器。所有GPIO都由這5個寄存器進行設(shè)置,這里將它們放在一個結(jié)構(gòu)體中進行管理。然后,在stm8s.h這是將GPIOA_BaseAddress0x5000(前面說到的端口A的寄存器的起始地址強制轉(zhuǎn)換為指向GPIO_TypeDef類型的指針。這樣一來,我們的就是0x5000這個內(nèi)存空間。比如說,GPIOA->IDR,我們0x5001這個內(nèi)存地址,也就是GPIOA的IDR寄存器的地址,那么就是我們可以看一下stm8s_gpio.c這個函數(shù)的作用是對GPIOGPIOx->ODR=這條語句就是對GPIO口的數(shù)據(jù)寄存器進行賦值操作。所以,庫函數(shù)的實現(xiàn)同時,在stm8s_gpio.h在GPIO_Init這個庫函數(shù)中傳遞GPIO_MODE_OUT_PP_HIGH_FAST這個變量即可,而不是傳遞0xF0這個數(shù)值。這樣做的好處是,方便我們閱讀程序,一看就知道 voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_Pin_TypeDefGPIO_Pin,GPIO_Mode_TypeDefA的第三個引腳設(shè)置為輸出模式,在第法中,我們需要查看,查看需要修改哪個寄存器,哪個位,然后對GPIO_Init函數(shù)中修改方向寄存器的值,將引腳設(shè)置為輸出模式。所以,這樣一來,是在重復(fù)勞動。GPIOAD,TIM這些復(fù)雜的STM32、ARM932CPU,難道我們還是一個一個寄存器地如果是用庫函數(shù)的話,只需要將GPIO_MODE_OUT_PP_HIG

溫馨提示

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

評論

0/150

提交評論