STM32F107VCT6学习中,重映射这卡住了...

2019-03-23 19:59发布

大侠们,求重映射的详解和范例啊,小弟拿个开发板学到这卡住了... 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
yueni_zhao
2019-03-24 15:15
void USART3_Configuration(uint32_t UART_baud) //波特率,如115200
{   
        USART_InitTypeDef USART_InitStructure;
         GPIO_PinRemapConfig(GPIO_FullRemap_USART3,ENABLE);
        /* USARTx configured as follow:
              - BaudRate = 115200 baud  
              - Word Length = 8 Bits
              - One Stop Bit
              - No parity
              - Hardware flow control disabled (RTS and CTS signals)
              - Receive and transmit enabled
        */
        USART_InitStructure.USART_BaudRate = UART_baud;//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;       
        USART3_COMInit(&USART_InitStructure);       
}

void USART3_COMInit(USART_InitTypeDef* USART_InitStruct)
{
                GPIO_InitTypeDef GPIO_InitStructure;
               
                /* Enable GPIO clock */
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD| RCC_APB2Periph_AFIO, ENABLE);         //使能串口所有GPIO模块时钟,并使能AFIO模块时钟
               
                /* Enable UART clock */               
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);         //使能串口模块时钟
               
                /* Configure USART Tx as alternate function push-pull */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                //设置TX引脚
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;         //复用推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOD, &GPIO_InitStructure);
               
                /* Configure USART Rx as input floating */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                //设置RX引脚
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;                //浮空输入
                GPIO_Init(GPIOD, &GPIO_InitStructure);
                       
                /* USART configuration */
                USART_Init(USART3, USART_InitStruct);                //初始化USART
               
                /* Enable USART */
                USART_Cmd(USART3, ENABLE);                //使能串口模块
}

波特率119200以上就会出现乱码,牛人说可能是我的485线太长了,9600一下没问题

一周热门 更多>