搜索
bottom↓
回复: 10

STM8时钟切换的诡异问题,求解

[复制链接]

出0入0汤圆

发表于 2012-8-30 16:08:27 | 显示全部楼层 |阅读模式
本帖最后由 fjian 于 2012-8-30 18:38 编辑

使用内部HSI代码如下,通信是正常的
void clk_init(void)
{
  CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV2);
  CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
}
切换到外部8M HSE,通信错误
void clk_init(void)
{
  CLK_DeInit();
  CLK_HSECmd(ENABLE);
  while(CLK_GetFlagStatus(CLK_FLAG_HSERDY)==RESET);
  while(CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,
                                           CLK_SOURCE_HSE,
                                           DISABLE,
                                           CLK_CURRENTCLOCKSTATE_DISABLE) == ERROR);
  CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
}
同样是8M为什么不对,是不是我有什么地方没设置????
串口配置代码:
void uart3_init(void)
{
  UART3_DeInit();
  UART3_Init((uint32_t)4800, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO,
                UART3_MODE_TXRX_ENABLE);

  UART3_ITConfig(UART3_IT_RXNE,ENABLE);
  UART3_Cmd(ENABLE);
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-8-30 16:42:45 | 显示全部楼层
顶啊,求教啊

出0入0汤圆

 楼主| 发表于 2012-8-30 17:29:44 | 显示全部楼层
下班前再来顶一下,难道没人玩STM8??????

出0入0汤圆

 楼主| 发表于 2012-8-30 18:40:35 | 显示全部楼层
再顶一次,神坛啊,给力点啊。

出0入0汤圆

发表于 2012-8-30 18:44:09 | 显示全部楼层
sysconfig之後再switch試試?

出0入0汤圆

 楼主| 发表于 2012-8-31 08:41:30 | 显示全部楼层
nazily215 发表于 2012-8-30 18:44
sysconfig之後再switch試試?

试过了一样的问题

出0入0汤圆

发表于 2012-8-31 08:50:51 | 显示全部楼层
1.先看看内部分频器,有没有设置的问题.
2.切换时钟的时候看看有没有切好,STM8这个东西时钟切换是个鸡肋,最好不要动时钟切换.

出0入0汤圆

 楼主| 发表于 2012-8-31 12:41:34 | 显示全部楼层
zhonggp 发表于 2012-8-31 08:50
1.先看看内部分频器,有没有设置的问题.
2.切换时钟的时候看看有没有切好,STM8这个东西时钟切换是个鸡肋,最 ...

跟这个有没有关系
#if !defined  HSE_Value
#if defined (STM8S208) || defined (STM8S207) || defined (STM8S007) || defined (STM8AF52Ax) || \
     defined (STM8AF62Ax)
  #define HSE_VALUE ((u32)24000000) /* Value of the External oscillator in Hz*/
#else
  #define HSE_VALUE ((u32)16000000) /* Value of the External oscillator in Hz*/
#endif /* STM8S208 || STM8S207 || STM8S007 || STM8AF62Ax || STM8AF52Ax */
#endif /* HSE_Value */


这是 stm8s.h中的,默认是24MHZ,我的外部是8MHZ

出0入0汤圆

发表于 2012-8-31 12:49:19 | 显示全部楼层
你的HSE_VALUE在其他地方有用到吗,如计算波特率的地方.如果是就直接改为8000000.最好看着资料配置,;;另外STM8的内部好像是16M的,我基本没有怎么用STM8所以只能分析一下原因,自己还是多看看PDF.在第8章里面的时钟说明很详细

出0入0汤圆

 楼主| 发表于 2012-8-31 13:46:26 | 显示全部楼层
蛋疼,同样的程序换了个板子就好了,貌似是硬件问题

出0入0汤圆

发表于 2012-8-31 22:43:40 | 显示全部楼层
fjian 发表于 2012-8-31 13:46
蛋疼,同样的程序换了个板子就好了,貌似是硬件问题

最近太忙了,没时间上网,你的问题搞定了没
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 08:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表