打印

stm8时钟与串口通讯的问题

[复制链接]
2852|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shoecat|  楼主 | 2011-6-13 07:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是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的波特率能解释出来

哪位大侠能帮忙看看为啥这样啊?是不是我哪里设置不对了?
沙发
STM_MCU| | 2013-5-22 19:51 | 只看该作者
添加我:QQ 825296516

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

54

帖子

1

粉丝