stm32 的串口通信时钟问题,请大家帮忙解决下!!!!

2019-03-23 19:37发布

USART_InitStructure.USART_BaudRate = 9600;                                                         
          USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 8位数据 ;
          USART_InitStructure.USART_StopBits = USART_StopBits_1;                // 在帧结尾传输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_ClockInitStructure.USART_Clock = USART_Clock_Disable;                        // 时钟低电平活动 ;
          USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;                                  // 时钟低电平 ;
          USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;                                // 时钟第二个边沿进行数据捕获 ;
        USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;         // 最后一位数据的时钟脉冲不从SCLK输出 ;
        */
          USART_Init(USART1, &USART_InitStructure);                                 // 初始化外设USART1寄存器 ;
          //USART_ClockInit(USART1, &USART_ClockInitStructure);
          USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
                //Enable USART
          USART_Cmd(USART1, ENABLE);      





如程序所示,几乎很多例程中,这一句
USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;                                // 时钟第二个边沿进行数据捕获 ;

都是在第二个边沿进行数据捕获,我想问下,为啥串口通信都设置为第二个边沿?难道第一个边沿不行吗?请大家指教。。多谢 此帖出自小平头技术问答
0条回答

一周热门 更多>