chenk8195 2016-12-06 09:21 采纳率: 0%
浏览 2193

stm32波特率的计算公式

在stm32中如何设置波特率?即波特率是如何计算的?在设置波特率的过程中出现问题,求解答,谢谢!

  • 写回答

3条回答 默认 最新

  • 徐福记456 2016-12-06 15:12
    关注

    以串口1的为例,库函数操作:

     //串口初始化函数,输入参数波特率,一般是9600
    void USART1_InitConfig(uint32 BaudRate)
    {
       USART_InitTypeDef USART_InitStructure;
       NVIC_InitTypeDef NVIC_InitStructure; 
    
       //使能串口的RCC时钟
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
    
       //串口使用的GPIO口配置
       //设置USART1 Rx (PA.10)为悬浮输入
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
       GPIO_Init(GPIOA, &GPIO_InitStructure);
    
       //设置 USART1 Tx (PA.09)为上拉推出 
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
       GPIO_Init(GPIOA, &GPIO_InitStructure);
    
       //配置串口:波特率、数据位、停止位、校验、流控制、模式
       USART_InitStructure.USART_BaudRate = BaudRate;
       USART_InitStructure.USART_WordLength = USART_WordLength_9b;
       USART_InitStructure.USART_StopBits = USART_StopBits_1;
       USART_InitStructure.USART_Parity = USART_Parity_Even;
       USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
       USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    
       USART_Init(USART1, &USART_InitStructure);//配置串口1
    
       //使能串口接收中断
       USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
       //串口发送中断在发送数据时开启
       //USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
    
       //使能 USART1
       USART_Cmd(USART1, ENABLE);
    
       //串口中断配置
       /* Configure the NVIC Preemption Priority Bits */  
       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
    
       /* Enable the USART1 Interrupt */
       NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
       NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
       NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
       NVIC_Init(&NVIC_InitStructure);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败