日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]概括一下:復(fù)用就是一個引腳有幾個功能,1.做普通IO輸入輸出  2.其他外設(shè)的輸入輸出(比如I2C,TIM,SPI等等),這就是復(fù)用。重映射就是將引腳功能重新定義到其他引腳,例如PA9是USART1-TX默認的管腳,但是現(xiàn)在PA9用做它用了,那可以將USART1-TX重新映射到PB6,當(dāng)然這種映射不是隨意的想映射到哪個腳就哪個腳,芯片內(nèi)部已經(jīng)固定了只能映射到固定的地方。

 概括一下:復(fù)用就是一個引腳有幾個功能,1.做普通IO輸入輸出  2.其他外設(shè)的輸入輸出(比如I2C,TIM,SPI等等),這就是復(fù)用。

重映射就是將引腳功能重新定義到其他引腳,例如PA9是USART1-TX默認的管腳,但是現(xiàn)在PA9用做它用了,那可以將USART1-TX重新映射到PB6,當(dāng)然這種映射不是隨意的想映射到哪個腳就哪個腳,芯片內(nèi)部已經(jīng)固定了只能映射到固定的地方

MCU復(fù)位后PA8的默認功能是普通IO管腳,我想將它設(shè)為TIM1的PWM-CH1復(fù)用輸出,如下圖,通過設(shè)置TIM_REMAP[1:0]寄存器,可以實現(xiàn)(沒有重映射)(部分重映射)(完全重映射)三種映射。

1 void TIM1_PWM_Init(u16 arr,u16 psc)

2 {

3 //

4 RCC->APB2ENR"=1<<11; //開啟TIM1定時器

5 GPIOA->CRH&=0XFFFFFFF0; //清除PA8

6 GPIOA->CRH|=0X0000000B; //設(shè)置PA8為頻率最大50MHZ復(fù)用推完輸出模式

7

8 TIM1->ARR=arr; //設(shè)置計數(shù)器自動重裝值

9 TIM1->PSC=psc; //預(yù)分頻器設(shè)置

10

11 TIM1->CCMR1|=7<<4; //CH1 PWM2模式

12 TIM1->CCMR1|=1<<3; //CH1預(yù)裝載使能

13 TIM1->CCER|=1<<0; //OC1輸出使能

14 TIM1->BDTR|=1<<15; //MOE主輸出使能

15

16 TIM1->CR1=0x0080; //ARPE使能

17 TIM1->CR1|=0x01; //使能定時器1

18 }

那如果我PA8已經(jīng)用作其他了。想將其重映射咋辦,看如下圖

1 //TIM1_CH1 PWM復(fù)用重映射輸出

2 void TIM1_PWM_Init(u16 arr,u16 psc)

3 {

4 RCC->APB2ENR"=1<<11; //TIM1時鐘使能

5 RCC->APB2ENR|=1<<6;//開啟PE時鐘(開啟待重映射管腳的時鐘)

6 RCC->APB2ENR|=1<<0;//開啟AFIO時鐘

7

8 GPIOE->CRH&=0XFFFFFF0F; //PE9清除,待重映射引腳

9 GPIOE->CRH|=0X000000B0; //PE9設(shè)置成復(fù)用推完輸出最大50MHZ

10 AFIO->MAPR&=0XFFFFFF3F; //TIM1_REMAP端口清除

11 AFIO->MAPR|=0X000000C0; //TIM1_REMAP端口復(fù)用重映射功能開啟

12

13 TIM1->ARR=arr; //重裝載值

14 TIM1->PSC=psc; //預(yù)分頻器值

15

16 TIM1->CCMR1|=7<<4; //CH1 PWM2模式

17 TIM1->CCMR1|=1<<3; //CH1預(yù)裝載使能

18 TIM1->CCER|=1<<0; //OC1 輸出使能

19 TIM1->BDTR|=1<<15; //MOE主輸出使能

20

21 TIM1->CR1=0x0080; //ARPE使能

22 TIM1->CR1|=0x01; //使能定時器1

23 }

按照上圖 只有兩種映射 部分映射和完全映射 如果是部分映射 改變的是BKIN,CH1N,CH2N,CH3N這幾個腳而已,所以應(yīng)該選完全映射 就可以將TIM1的PWM-CH1重映射到PE9這個腳去。

關(guān)于這個問題,我的理解是:例如上圖,假如說 連CH2 CH3 CH4也以前用了的話 那就沒辦法了 都會一起被重新映射走了,也就說CH2=PE11 CH3=PE13 CH4 =PE14沒辦法只做到只映射了一個過來而已。

那如果說只使用了CH1的話 那就不會有影響 PE11 PE13 PE14照樣當(dāng)做普通IO使用不用將這幾個管腳的復(fù)用功能打開就可以了 。

『本文轉(zhuǎn)載自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系刪除』

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉