• 代码


    /*******************************************************************************
    * 函 数 名         : USART1_Init
    * 函数功能           : USART1初始化函数
    * 输    入         : bound:波特率
    * 输    出         : 无
    *******************************************************************************/
    void USART1_Init(u32 bound)
    {
       //GPIO端口设置
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);                     //使能GPIOA时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);                    //使能USART1时钟
     
        //串口1对应引脚复用映射
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);             // GPIOA9复用为USART1
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);             // GPIOA10复用为USART1
        
        //USART1端口配置
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10 ;                     //GPIOA9与GPIOA10
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;                                        //复用功能
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                                //速度50MHz
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                                     //推挽复用输出
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;                                         //上拉
        GPIO_Init(GPIOA,&GPIO_InitStructure);                                                     //初始化PA9,PA10
        
    
       //USART1 初始化设置
        USART_InitStructure.USART_BaudRate = bound;                                            //波特率设置
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;            //字长为8位数据格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;                    //一个停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;                            //无奇偶校验位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;    //收发模式
        USART_Init(USART1, &USART_InitStructure);                                             //初始化串口1
        
        USART_Cmd(USART1, ENABLE);                                                                          //使能串口1 
        
        
        USART_ClearFlag(USART1, USART_FLAG_TC);
            
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                        //开启相关中断
    
        //Usart1 NVIC 配置
        NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;                    //串口1中断通道
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;        //抢占优先级3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;                    //子优先级3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);                                        //根据指定的参数初始化VIC寄存器、    
    
    }
  • 相关阅读:
    改变oracle数据库归档模式_译文
    改变数据库归档模式
    oracle状态
    oracle开启一个用户
    plsql中文乱码问题方案解决
    mybatis 和hibernate的区别
    jquery
    servlet 相应头重定向
    自定义鼠标右键
    关于select input(选中,取值,赋值等)--------方便自己查阅
  • 原文地址:https://www.cnblogs.com/xing-ting/p/10536648.html
Copyright © 2020-2023  润新知