日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

STM32學習筆記之 使能AFIO時鐘與重映射功能

 wwkfisker1 2016-01-22
     最近在學習STM32的外部中斷時,例程上有這樣一句代碼RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);   這句代碼的功能是使能復用功能時鐘,剛開始不知道為什么有時候需要啟動RCC_APB2Periph_AFIO時鐘,有時候又不需要,之后在網(wǎng)上查找資料和看手冊,終于搞清楚了。
    STM32F10xxx的參考手冊中文版本對AFIO寄存器描述  


STM32 AFIO復用功能寄存器(參考)

AFIO_EVCR:復用事件控制寄存器

AFIO_MAPR復用功能重映射和調試I/O配置寄存器,配置某些引腳第三功能。

AFIO_EXTICR1:外部中斷配置寄存器1,配置外部中斷EXTI0,1,2,3Px0,Px1,Px2,Px3引腳。(x=A,B,C,D,E…)

AFIO_EXTICR2:外部中斷配置寄存器2,配置外部中斷EXTI4,5,6,7Px4,Px5,Px6,Px7引腳。(x=A,B,C,D,E…)

AFIO_EXTICR3:外部中斷配置寄存器3,配置外部中斷EXTI8,9,10,11Px8,Px9,Px10,Px11引腳。(x=A, B,C,D,E…)

AFIO_EXTICR4:外部中斷配置寄存器4,配置外部中斷EXTI12,13,14,15Px12,Px13,Px14,Px15引腳。(x=A,B,C,D,E…)
 

    因為在配置外部中斷時,要對 AFIO_EXTICRX進行讀寫操作,所以要打開RCC_APB2Periph_AFIO時鐘。
    
RCC_APB2Periph_AFIO是重映射功能的時鐘,只要你沒有將特定的外設指定的IO Remap(重映射)到其它端口(也是指定的),就不需要打開AFIO時鐘。 比如說,在使用TIM1時,因為使用的默認的PA、PB相應端口,并沒有進行Remap,因此不需要讀寫AFIO寄存器,所以不需要啟動RCC_APB2Periph_AFIO時鐘。
    同時我也學到了關于重映射方面的一些知識。
   
STM32上有很多I/O口,也有很多的內置外設想I2C,ADC,ISP,USART等 ,為了節(jié)省引出管腳,這些內置外設基本上是與I/O口共用管腳的,也就是I/O管腳的復用功能。但是STM32還有一特別之處就是:很多復用內置的外設的I/O引腳可以通過重映射功能,從不同的I/O管腳引出,即復用功能的引腳是可通過程序改變的。
    比如
USART2外設的TX,RX分別對應PA2,PA3,如果PA2,PA3引腳接了其他設備,但是為了還要用USART2,我們就可以把USART2設備的TX,RX映射到PD5,PD6,應該注意的是USART2的TX,RX是不可以映射到任意管腳的,它只能映射到固定的管腳,下圖是USART2重映射表 
 

其他外設的重映射可以參考STM32100X手冊
庫函數(shù)的調用
(1)使能被重新映射到的I/O端口時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
(2)使能被重新映射的外設時鐘
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
(3)使能AFIO功能的時鐘(勿忘!)
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
(4)進行重映射GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多