微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32F207串口波特率问题 ,求教、、、、

STM32F207串口波特率问题 ,求教、、、、

时间:10-02 整理:3721RD 点击:
void usart1_init(void)
{
        GPIO_InitTypeDef        GPIO_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        USART_InitTypeDef        USART_InitStructure;
       
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
        //USART_DeInit(USART1);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1);
  GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1);
       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
        USART_InitStructure.USART_BaudRate =115200;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        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);
       
        /* NVIC configuration */
  /* Configure the Priority Group to 2 bits */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  /* Enable the USARTx Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
       
        USART_Cmd(USART1,ENABLE);
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
}

USART_SendData(USART1, 0x23);
我是这样设置的为什么   使用 串口接收数据的时候  波特率要设置成   38400才能接收到 正常的数据呢

!我不知道怎么回事  !
请  知情的  高手们 帮我解决一下   

我找到了 原因    stm32f207   库里面 定义的是    外部时钟  为  25m
#define HSE_VALUE            ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
而  板上的晶振是  8m  所以就变成 了   1/3
把这个地方    改成   8m就行了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top