打印
[STM32F1]

【我与ST MCU的故事】细节决定成败

[复制链接]
505|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2019-3-17 12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在很早之前就开始关注ST32了,不是因为今天有这个活动我才这么说。我也不是见人说人话,见鬼说鬼话的人。
我记得STM32刚推出的时候是上海庆科的第一块开发板,我记得还不能用KEIL只能用IAR,对此我还和庆科的技术支持理论了一翻。
  以后么智林开发板。然后是坛子里活动的开发板。反正,手里的ST板子多多。但我也没有白搞这些板子。
  我开发东东,总先想到STM32,十在不行了,或成本问题我才用别的单片机。
  我用STM32F103开发的东东已经投产。
  。。。。。不说以前的了,说说最近我遇到的事吧。
  我用了一个SPI的芯片,管显示和按键的,十分牛。我用STM32F103的SPI硬件驱动它。它的速率非常低,我就得降STM32的系统总线的频率。
来迎和这款芯片,始之来之能战战之能胜,好为我的整体干活。
  这块一切正常,但定时器也挂在了这个总线上,我记得是APB1总线吧。那么,我就得根据我降的频率来算定时时间对吧。
  而且对定时要求也很严,工业级产品是哈!我于是按我给降速率的总线进行计算。
  算好了程序下进芯片,不准,很不准。如果不准我的设计就会画上句号。或换别的方案。但我是老司机了,丢面子是小,工作没了是大吧。
  我于是到论坛里求助。也浏览网页。

  在论坛求助的贴子如下:

今天看到一个博客写如下:

假设 系统时钟是72Mhz,TIM1 是由PCLK2 (72MHz)得到,TIM2-7是由 PCLK1 得到

关键是设定 时钟预分频数,自动重装载寄存器周期的值

/*每1秒发生一次更新事件(进入中断服务程序)。RCC_Configuration()的SystemInit()的

RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为72MHz。因此,每次进入中

断服务程序间隔时间为

时间=1/频率×次数

((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒 */


我不懂的一句话是“RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为72MHz”
明明写着2分频,怎么还是72MHZ,请大神解答。

    然而当贴子刚发出不久,我在一书老书(大家说是数据手册的翻译)上看到了一句话:
定时器时钟频率是它们连接到APB区域时钟频率的2倍,但是如果APB预分频器是1的话,定时器的时钟和它所连接的APB区或的时钟频率是一样的。
   

 我修改了程序,定时准了。
 我自己认为自己不错,STM32的员老。从这事我看出来了,所有的事都得小心认真,如履薄冰。否则死都不知道怎么死的。现在我开发的东东已经进入小批试验阶段。又想起那句话“细节决定成败”


沙发
零三翟邢止胃| | 2019-3-18 09:49 | 只看该作者
真是不错的啊!

使用特权

评论回复
板凳
ddllxxrr|  楼主 | 2019-3-18 12:20 | 只看该作者

使用特权

评论回复
地板
wakayi| | 2019-4-4 13:53 | 只看该作者
楼主很有文采啊

使用特权

评论回复
5
wowu| | 2019-4-4 14:39 | 只看该作者
恩 哟时候马虎一点就会失败

使用特权

评论回复
6
xiaoqizi| | 2019-4-4 14:53 | 只看该作者
支持楼主 加油

使用特权

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝