|
stm32 的串口通信时钟问题,请大家帮忙解决下!!!!
[复制链接]
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; // 时钟第二个边沿进行数据捕获 ;
都是在第二个边沿进行数据捕获,我想问下,为啥串口通信都设置为第二个边沿?难道第一个边沿不行吗?请大家指教。。多谢
|
|