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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序