STM控制器位帶操作詳解實用教案_第1頁
STM控制器位帶操作詳解實用教案_第2頁
STM控制器位帶操作詳解實用教案_第3頁
STM控制器位帶操作詳解實用教案_第4頁
STM控制器位帶操作詳解實用教案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、STM32控制器與8051控制器IO口輸入(shr)/輸出操作對比#include “reg51.h”sbit P20= P20;void main(void) while(1) P20 = 1; delay(); P20 = 0; delay(); #include “stm32f10 x.h”sbit P20= P20;void main(void) while(1) GPIOB-BSRR|=1BRR|=1BSRR|=1BRR|=15; delay(); 第5頁/共15頁第五頁,共16頁。8051單片機的位尋址區(qū)表表2-32-3第6頁/共15頁第六頁,共16頁。STM32位帶區(qū)之一第7頁/

2、共15頁第七頁,共16頁。STM32位帶區(qū)之二第8頁/共15頁第八頁,共16頁。STM32存儲器映射(yngsh)關(guān)系教材(jioci)26頁 圖2-10 CM3存儲器組織位帶區(qū)位別名(bimng)區(qū)位帶區(qū)位別名區(qū)第9頁/共15頁第九頁,共16頁。STM32 位帶綁定操作(cozu)示意圖第10頁/共15頁第十頁,共16頁。STM32 位帶綁定操作(cozu) 計算公式4n32)0 x40000000(A0 x420000004n)8)0 x40000000(A0 x42000000AliasAddr4n32)0 x20000000(A0 x220000004n)8)0 x20000000(A

3、0 x22000000AliasAddrSRAM對于外設(shè)位帶區(qū)位帶區(qū)對于注釋(對于位帶區(qū)的某個bit,上圖紅色圈中的bit)n:所代表的位序號(0n7)。例如(lr)上圖中n=3A:該bit所在的字節(jié)地址。例如(lr)上圖中A=0 x2000 0000(0 x20000000A0 x200FFFFF或0 x20000000A0 x200FFFFF )AliasAddr:該bit在別名區(qū)的地址。例如(lr)上圖AliasAddr=0 x2200000C第11頁/共15頁第十一頁,共16頁。STM32 位帶綁定操作(cozu) 程序設(shè)計舉例:在SRAM的0 x20004000地址定義一個長度為51

4、2字節(jié)(z ji)的數(shù)組:#pragma location =0 x20004000 _root _no_init u8 Buffer512;GPIOA的端口輸出數(shù)據(jù)寄存器位于地址0 x4001080C。要求:將數(shù)組中數(shù)據(jù)通過GPIOA.0引腳送出分析:數(shù)組首字節(jié)(z ji)的bit0對應(yīng)的位別名區(qū)地址為:0 x22000000+(0 x20004000-0 x20000000)32)+(04)=0 x22080000GPIOA.0控制其輸出電平的bit位所對應(yīng)的別名區(qū)地址為:0 x42000000+(0 x4001080C-0 x40000000)32)+(04)=0 x42210180u3

5、2 *pBuffer=(u32 *)0 x22080000;u16 cnt= 512 * 8;while(cnt-) (*(u32 *)0 x42210180)=*pBuffer+;第12頁/共15頁第十二頁,共16頁。STM32 位帶綁定操作方法歸納(gun)1 指針、地址與取指針操作#define PD12 (volatile unsigned long *)(0 x424182b0) /0 x424182b0為GPIOD.12引腳對應(yīng)的映射位別名地址*PD12=0 x01;/PD12引腳置高電平2 直接(zhji)定義使用地址操作#define PD12 *(volatile unsig

6、ned long *)(0 x424182b0) /0 x424182b0為GPIOD.12引腳對應(yīng)的映射位別名地址PD12=0 x01;/PD12引腳置高電平3 宏定義,轉(zhuǎn)換別名操作使用:VIEW_TIME=1; VIEW_TIME=0;/GPIOA.10引腳 輸出1或者0分析:#define VIEW_TIME PAout(10)#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) /輸出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) /輸入#define GPIOA_ODR_Addr (GPIOA_BASE+12)

7、 /0 x4001080C#define GPIOA_BASE (APB2PERIPH_BASE + 0 x0800)#define APB2PERIPH_BASE (PERIPH_BASE + 0 x10000)#define PERIPH_BASE (uint32_t)0 x40000000) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)#define MEM_ADDR(addr) *(volatile unsigned long *)(addr) #define BITBAND(addr, bitnum) (addr & 0 xF0000000)+0 x2000000+(addr &0 xFFFFF)5)+(bitnumBRR|=15。n:所代表(dibio)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論