我用的是STM8S207C8T6芯片,我的程序出现了如下的奇怪事情:
1.如果采用外部16M晶振,clk初始化代码如下:
u8 set;
CLK_DeInit();
CLK_HSECmd(ENABLE);
CLK_ClockSwitchCmd(ENABLE);
//CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL , CLK_SOURCE_HSE , DISABLE , CLK_CURRENTCLOCKSTATE_ENABLE);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE , DISABLE , CLK_CURRENTCLOCKSTATE_DISABLE);
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
则207的uart3必须初始化成1800的波特率,即:UART3_Init((u32)1800, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO, UART3_MODE_TXRX_ENABLE);用逻辑分析仪1200的波特率能解析的出来
2.如果采用内部16M晶振,即: CLK_DeInit();
// 16MHz system clock
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
则UART3初始化为1200波特率,即:UART3_Init((u32)1200, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO, UART3_MODE_TXRX_ENABLE);逻辑分析仪用1200的波特率能解释出来
哪位大侠能帮忙看看为啥这样啊?是不是我哪里设置不对了? |