使用cubemx和hal库对stm32f103进行编程学习

我们今天要操刀的是定时器timer

首先用cubemx新建工程选择开发板stm32f103vet6开发板。

然后常规的,对时钟,一些边缘设置好 

 都选择外部时钟源

 debug选择serial wire

接下来就开始配置我们的中断设置,首选时钟源选择内部时钟源

 

然后根据公式:

定时时间=1/频率*(prescaler+1)*(counter period+1);

对了,这里的频率我们要先设置,在时钟树里面配置。

 

这里我们查阅芯片手册,得知定时器tim2和tim3在APB1时钟控制,我们设置时钟为72 mhz,这里我们的频率已经确定,还需要设置预分频器和主计数器的值。

这里配置tim2,我们需要1s的延时,所以我们配置prescaler为7199,counter period为9999,按照公式算出来刚好延迟1s,这里的预分频器本质上是一个加法计数器,赋给的值是溢出值,每当加到超过溢出值,就会给主计数器一个脉冲。

然后再nvic settings里面使能中断。

  

 然后在配置两个中断的优先级,把tim2的中断配置为6,tim3的优先级配置为8,用的优先级分组是4。这里优先级分组规则参考书籍资料。

然后常规的project manager设置,就可以生成代码了。

不知道为什么,我的cubemx生成的工程都需要重新设置一下魔法棒

这里我们需要勾选 use microlib选项,版本选择version6

这里的debug选择dap,并且继续配置

 

 这里的connect选项要选择under reset,不然就下载不到开发板上。

 

找到中断服务函数,每次中断都会进入服务函数,我们在服务函数中让小灯翻转

 

 在主函数里面开启定时器,定时器就可以使用了。

最后实验效果很好。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abgreat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值