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

當前位置:首頁 > 單片機 > 單片機
[導讀]STM32上有很多I/O口,也有很多的內(nèi)置外設,像I2C,ADC,ISP,USART等,為了節(jié)省引出管腳,這些內(nèi)置外設基本上是與I/O口共用管腳的,也就是I/O管腳的復用功能。但是STM32還有一特別之處:很多復用內(nèi)置的外設的I/O引腳

STM32上有很多I/O口,也有很多的內(nèi)置外設,像I2C,ADC,ISP,USART等,為了節(jié)省引出管腳,這些內(nèi)置外設基本上是與I/O口共用管腳的,也就是I/O管腳的復用功能。但是STM32還有一特別之處:很多復用內(nèi)置的外設的I/O引腳可以通過重映射功能,從不同的I/O管腳引出,即復用功能的引腳是可通過程序改變的。設置復用重映射和調(diào)試I/O配置寄存器(AFIO_MAPR)實現(xiàn)引腳的重新映射。這時,復用功能不再映射到它們的原始分配上。使用方法:

簡單的說 STM32的 io 有3個功能一個是默認的,一個是復用,一個是重映射功能(這個其實也屬于復用)。如果配置成復用,則將使用第2個功能;同時,相應的重映射配置了,則將使用第3個功能。開復用 + 使能設備+ 是否重映射就可以決定這個io口到底使用哪個功能。以串口為例進行說明,重映射步驟為:

1、打開重映射時鐘和USART重映射后的I/O口引腳時鐘,

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);

2、I/O口重映射開啟.

GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

3、配制重映射引腳, 這里只需配置重映射后的I/O,原來的不需要去配置.

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOB,&GPIO_InitStructure);

只需要這三步,串口就可以正常使用了。

對于定時器也是類似步驟。

GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //上拉輸入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M時鐘速度
GPIO_Init(GPIOE, &GPIO_InitStructure);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //時鐘使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);//完全重映射

//GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE); //部分重映射


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