Estrelas de código

/ ************************************************* ******************************
* Nome da função: USART1_Init
* Função: função de inicialização USART1
* Entrada: limite: taxa de transmissão
* Saída: Nenhuma
**************************************************** ***************************** /
nulo USART1_Init (limite de u32)
{
   // configurações da porta GPIO
    GPIO_InitTypeDef GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
    
    RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE); // Ativar relógio GPIOA
    RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1, ENABLE); // Ativar relógio USART1
 
    // A porta serial 1 corresponde ao mapeamento de multiplexação de pinos
    GPIO_PinAFConfig (GPIOA, GPIO_PinSource9, GPIO_AF_USART1); // GPIOA9 multiplexado como USART1
    GPIO_PinAFConfig (GPIOA, GPIO_PinSource10, GPIO_AF_USART1); // GPIOA10 multiplexado como USART1
    
    // configuração da porta USART1
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; // GPIOA9 与 GPIOA10
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; // Função multiplex
    GPIO_InitStructure.GPIO_Speed ​​= GPIO_Speed_50MHz; // 50 MHz
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // Saída de multiplexação push-pull
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; // 上 拉
    GPIO_Init (GPIOA, & GPIO_InitStructure); // Inicializa PA9, PA10
    

   // configuração inicial USART1
    USART_InitStructure.USART_BaudRate = bound; // Configuração da taxa de transmissão
    USART_InitStructure.USART_WordLength = USART_WordLength_8b; // O comprimento da palavra é um formato de dados de 8 bits
    USART_InitStructure.USART_StopBits = USART_StopBits_1; // Um ​​bit de parada
    USART_InitStructure.USART_Parity = USART_Parity_No; // Sem bit de paridade
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // Nenhum controle de fluxo de dados de hardware
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // Padrão de extração
    USART_Init (USART1, & USART_InitStructure); // Inicializa a porta serial 1
    
    USART_Cmd (USART1, ENABLE); // Ativa a porta serial 1 
    
    
    USART_ClearFlag (USART1, USART_FLAG_TC);
        
    USART_ITConfig (USART1, USART_IT_RXNE, ENABLE); // Abrir interrupção relacionada

    // Configuração NVIC Usart1
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; // Canal de interrupção serial 1
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; // Prioridade de preempção 3
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; // Subprioridade 3
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // Canal IRQ ativado
    NVIC_Init (& NVIC_InitStructure); // Inicialize o registro VIC de acordo com os parâmetros especificados,    

}

 

 

Acho que você gosta

Origin www.cnblogs.com/4nianlaoqun/p/12702309.html
Recomendado
Clasificación