STM32 experiência de aprendizagem 12: porta de multiplexação e remapeamento

Gravá-lo, fácil de ler depois ~
elementos principais:
1) porta complexos;
2) remapeamento porta;
informações oficiais: "o STM32 chinês Manual de Referência do V10" Capítulo 8 Geral e funções de multiplexação IO (GPIO e afio)
complexo 1. Porta conceito com
um monte de built-in STM32 periférica, estes periféricos pinos externos são multiplexados com GPIO. Em outras palavras, se um GPIO pode ser reutilizado como um embutido pino função periférico, em seguida, quando o tempo GPIO como embutido utilização periférica, é chamado de multiplexação.
Tal como a transmissão em série e recepção de pino 1 está PA9 e PA10, quando se colocar PA9 e PA10 não é usado como GPIO, e usado para enviar função alternativa pino porta serial um receptor, denominada porta de multiplexação.
Aqui Insert Picture Descrição
2. Porta processo de configuração em multiplex (a PA9, PA10 como porta serial Exemplo 1)
2,1 Relógio activar a porta GPIO (Porto Relógio Activar):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

2,2 multiplexados com relógio periférica permitir (Para PA9 porta, PA10 multiplexados a uma porta série, e por conseguinte permitir que a porta serial do relógio):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

2.3 porta de configuração modo (configurações do modo de porta GPIO e procure por "STM32 chinês Referência V10 Manual" Saiba como configurar função alternativa GPIO);
Aqui Insert Picture Descrição
2.4 acima mostra a tabela que você deseja configurar uma porta serial full-duplex 1, uma configuração push-pull USARTx_TX pins multiplexação de saída, USARTx_RX pinos como entrada ou puxar de entrada, uma parte do código da seguinte maneira flutuante:

//USART1_TX    PA.9 复用推挽输出// 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;              //PA.9// 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      //速率50MHz//
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽输出// 
GPIO_Init(GPIOA, &GPIO_InitStructure); 
//USART1_RX    PA.10 浮空输入//
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;             //PA10// 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入// 
GPIO_Init(GPIOA,&GPIO_InitStructure);   

3. Porto remapeamento o conceito de
cada periférico foi construído um número de pinos de entrada e de saída, portas de saída estes pinos são geralmente fixo, a fim de permitir que os engenheiros de estrutura para uma melhor organização e função do pino, STM32 conceito foi introduzido no pino remapeamento periférica, isto é, uma adição pino porta periférica para o padrão, mas também pode ser fornecido por remapeamento modo de registo, este pino é mapeado para o outro porta periférica .
Em ordem a embalar vários dispositivos periféricos número de IO a funcionalidade ideal, alguma função multiplexagem pode ser mapeado de novo para os outros pinos. STM32 tem muitos embutido pinos de entrada e de saída periféricos que têm função de remapeamento (remapeamento).
Assim remapeamento características principais: 1) criação fácil PCB, reduzindo o sinal de diafonia; 2) para aumentar o número de portas.
4. STM32F103x LQFP100 remapeamento pino
Aqui Insert Picture Descrição
5. Ver "STM32F103ZET6" Manual de chip
ainda uma porta serial, por exemplo, por defeito, a porta serial receber o pino 1 é PA9 e PA10 (segundo a partir de campo de observação direita), pode ser USART1_TX e remapeamento USART1_RX PB6 e PB7 pinos ir acima (tal como visto a partir da direita na primeira coluna).
Aqui Insert Picture Descrição
6. Alguns remapeamento e remapeamento totalmente
parte remapeamento : Alguns função pin remapeamento periférica, há uma parte do pin pin padrão original; completamente remapear : periféricos de função Todos os pinos são remapeada. No Exemplo 3 de série:
Aqui Insert Picture Descrição
7 Porto configuração remapeamento (para PB6, PB7 como porta serial Exemplo 1)
7,1 Relógio activar a porta GPIO (a porta de modo que o relógio pode remapeie):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

7,2 Activar função relógio periférica (Para PB6 porta, PB7 multiplexados a uma porta série, e por conseguinte permitir que a porta serial do relógio):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

7.3 Activar relógio afio (remapeamento deve estar habilitado relógio afio):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE)

7,4 remapeamento aberto:

GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
//根据第一个参数,确定部分重映射还是全部重映射,在stm32f10x_gpio.h文件中定义了取值范围为下面宏定义的标识符://
//#define GPIO_PartialRemap_USART3    ((uint32_t)0x00140010);  //  
//#define GPIO_FullRemap_USART3      ((uint32_t)0x00140030);   //
//若要使用 USART3 的部分重映射,调用函数方法为:                  //
//GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);        //

8. Que circunstâncias precisa abrir relógio afio de acessibilidade?
Registre-se antes AFIO_MAPR, AFIO_EXTICRX AFIO_EVCR e ler e escrever, deveria relógio afio primeira abertura:
1) AFIO_MAPR: função de multiplexação configuração remapeamento;.
2) AFIO_EXTICRX: configuração de mapeamento interrupção externa;
3) AFIO_EVCR:. Saída de evento Configure EVENTOUT.
Ponto conhecimento
1) revisar os parâmetros de configuração GPIO funções de biblioteca base, consulte STM32 experiência de três aprender: Experiência GPIO - com base funções de biblioteca

Publicado 24 artigos originais · ganhou elogios 2 · Vistas 4120

Acho que você gosta

Origin blog.csdn.net/Leisure_ksj/article/details/105313702
Recomendado
Clasificación