社区导航

 

搜索
查看: 3073|回复: 3

[求助] stm32的时钟和can波特率的奇怪现象

[复制链接]

3

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-12-7 11:28 | 显示全部楼层 |阅读模式
我用103开发一个can程序,板子上的晶振为16M,时钟配置用的是官方程序SystemInit(),也宏定义了SYSCLK_FREQ_72MHz,理论上系统时钟应该是72M,但实际上我查看SYSCLK寄存器,时钟为36M,此为怪事一;然后如果系统时钟是36M,那么我配置的波特率计算出来应该为125k,运行时在keil里查看can的控制面板,波特率也的确为125k,但实际上出来的波特率却为250k,与can分析仪用250k的速率可以正常通信。大家可以帮我想想问题所在么?
来源:EEWorld stm32/stm8板块,转载请附上链接


回复

使用道具 举报

3

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2012-12-7 11:33 | 显示全部楼层
后来我自己写了个时钟配置程序,结果查看SYSCLK为72M,can波特率的配置按理论是125k,但实际上与分析仪要用250k才能通信,而且通信过程会出现丢失帧id的现象。代码如下:
============================
HSEStartUpStatus = RCC_WaitForHSEStartUp();
        //如果外部晶振启动成功,则进行下一步操作
        if (HSEStartUpStatus==SUCCESS)
        {
                //设置HCLK(AHB时钟)
                RCC_HCLKConfig(RCC_SYSCLK_Div2);

                //PCLK1(APB1) = HCLK/2
                RCC_PCLK1Config(RCC_HCLK_Div2);

                //PCLK2(APB2) = HCLK
                RCC_PCLK2Config(RCC_HCLK_Div2);         //         RCC_HCLK_Div1

                //FLASH时序控制
                //推荐值:SYSCLK = 0~24MHz   Latency=0
                //        SYSCLK = 24~48MHz  Latency=1
                //        SYSCLK = 48~72MHz  Latency=2
                FLASH_SetLatency(FLASH_Latency_2);
                //开启FLASH预取指功能
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

                //PLL设置 (最大72MHz?)
               RCC_PLLConfig(0x00010000, RCC_PLLMul_9);
                          //  RCC_PLLConfig(0x00000000, RCC_PLLMul_9);
                //启动PLL
                RCC_PLLCmd(ENABLE);
                //等待PLL稳定
                while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
                //系统时钟SYSCLK来自PLL输出
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
                //切换时钟后等待系统时钟稳定
                while (RCC_GetSYSCLKSource()!=0x08);


回复

使用道具 举报

2920

TA的帖子

1

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2012-12-18 21:48 | 显示全部楼层
如果晶体不是配置的8M 的话,调试和非调试运行估计是不同的,因为仿真调试的原因。


回复

使用道具 举报

1307

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2016-11-4 15:31 | 显示全部楼层
这个问题解决了么
我爱着爱着我的人,朋友和家人。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-9-23 14:46 , Processed in 0.164040 second(s), 18 queries , Gzip On, MemCache On.

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