12/19

作者: 王子龙同学 | 来源:发表于2017-12-19 19:57 被阅读0次

    stm32f407串口通信:

    void UART1_config(void)

    {

    GPIO_InitTypeDef GPIO_InitStruct;

    USART_InitTypeDef USART_InitStruct;

    //1.配置GPIO管脚复用

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//开时钟

    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_9|GPIO_Pin_10;//同组管脚一次设置多个

    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;//管脚复用

    GPIO_Init(GPIOA, &GPIO_InitStruct);

    //2.管脚复用绑定

    GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,GPIO_AF_USART1);

    GPIO_PinAFConfig(GPIOA, GPIO_PinSource10,GPIO_AF_USART1);

    //3.初始化串口

    USART_InitStruct.USART_BaudRate  = 9600;//波特率

    USART_InitStruct.USART_WordLength = USART_WordLength_8b;//字节长度

    USART_InitStruct.USART_Parity  = USART_Parity_No;//校验

    USART_InitStruct.USART_StopBits = USART_StopBits_1;//停止位

    USART_InitStruct.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;//模式

    USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//流控

    USART_Init(USART1,&USART_InitStruct);//初始化

    USART_Cmd(USART1, ENABLE);//串口使能 (不是所有寄存器都需要使能)

    }

    void uart_send_data(u8 data)

    {

    USART_SendData(USART1, data);//发送数据

    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);//等待标志位

    }

    相关文章

      网友评论

          本文标题:12/19

          本文链接:https://www.haomeiwen.com/subject/cpviwxtx.html