最近玩串口打印的时候发现一个奇怪的现象,如图,波特率都是9600,而且另一块板子可以正常显示,这程序是从另一块板子上移植过来的,是我忽略了什么吗?
没问题的是stm32f103ve,出问题的是stm32f103c8t6
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate=9600;
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);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
USART_Cmd(USART1,ENABLE);
USART_ClearFlag(USART1,USART_FLAG_TC);
}
这应该是没问题的呀,你试一下把stm32f103c8t6的9600改成4800看看行不行,我之前用一个107的也不知道是什么原因把9600改成4800就可以了。
这应该是配置不同吧,你用的是那两个芯片?可以发一下串口初始化的程序给我看看吗?
都是8M,但是不是同一个牌子的
请问这种原因是晶振问题吗,还是板子布局,示波器能不能看出来?
是必出现的,其他波特率也会这样