×
单片机 > 单片机程序设计 > 详情

7.STM32F407ZG串口通信配置流程

发布时间:2020-05-28 发布时间:
|

步骤:


1.时钟使能:GPIO时钟使能,串口时钟使能。


    RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

2.端口配置:GPIO引脚配置,复用模式。


    GPIO_InitTypeDef GPIO_Struct;

 

    GPIO_Struct.GPIO_Pin=GPIO_Pin_9;

    GPIO_Struct.GPIO_Mode=GPIO_Mode_AF;

    GPIO_Struct.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Struct.GPIO_OType=GPIO_OType_PP;

    GPIO_Struct.GPIO_PuPd=GPIO_PuPd_UP;

    GPIO_Init(GPIOF,&GPIO_Struct);

    

    GPIO_Struct.GPIO_Pin=GPIO_Pin_10;

    GPIO_Struct.GPIO_Mode=GPIO_Mode_AF;

    GPIO_Struct.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Struct.GPIO_OType=GPIO_OType_PP;

    GPIO_Struct.GPIO_PuPd=GPIO_PuPd_UP;

    GPIO_Init(GPIOF,&GPIO_Struct);

端口为复用模式。


3.串口配置:串口参数初始化,串口使能,并开启中断。


    USART_InitTypeDef Usart_Struct;

    Usart_Struct.USART_BaudRate=19200;

    Usart_Struct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

    Usart_Struct.USART_Mode= USART_Mode_Tx;

    Usart_Struct.USART_Parity=USART_Parity_No;

    Usart_Struct.USART_StopBits=USART_StopBits_1;

    Usart_Struct.USART_WordLength=USART_WordLength_8b;

    USART_Init(USART1,&Usart_Struct);

    USART_Cmd(USART1,ENABLE);

4.中断配置:中断参数设置,中断处理函数配置(中断类型,使能,抢占优先级等)。


USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

NVIC_InitTypeDef NVIC_Inst;

NVIC_Inst.NVIC_IRQChannel= USART1_IRQn;

NVIC_Inst.NVIC_IRQChannelCmd=ENABLE;

NVIC_Inst.NVIC_IRQChannelPreemptionPriority=1;

NVIC_Inst.NVIC_IRQChannelSubPriority=1;

NVIC_Init(&NVIC_Inst);

//NVIC Init

}

 

void USART1_IRQHandler(void){

u8 res;

if(USART_GetITStatus(USART1,USART_IT_RXNE)){

res=USART_ReceiveData(USART1);

USART_SendData(USART1,res);

}

}

5.主函数配置:需设置中断优先级分组。


int main(void){

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

Usart_Init();

while(1);

}


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址