打印
[STM32F1]

【转】【经验】STM32的一些细节

[复制链接]
686|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

这两天 碰到的奇葩问题是 STM32定时器同步的问题。

我的设计本意是:使用定时器T3以100us的周期来定时发送命令给 FPGA。由于编码器出结果的最长时间为51us。因此,希望PWM中断要滞后于T3 约60us 。

调试过程:分别在T3和PWM中断中置IO1, IO2. 观察波形,发现IO1和IO2的周期都对,但相位差不固定,一直在变动。

百思不得其解。。。

后来,尝试用T2和T3来测试。发现相位是固定的,原来T2和T3的时钟来源是APB1 ,而T1的时钟来源是 APB2 。差异就在这里。

T8用的时钟是APB2.

改T3为T8, 相位差还是飘动。把T8由向上计数 也改成 和T1一样(中央对齐模式),这个时候相位差固定,但由之前的 55us 上升到78us 。估计和清中断标志有关。

关于中断优先级:

1. 中断优先级能分组,但只需要分一次确定下来即可,而不是分多次。若是分2组,则抢占优先级可以有0—3 这4个级别。

函数:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_IRQChannelPreemptionPriority 抢占优先级,越小优先级越高

NVIC_IRQChannelSubPriority 副优先级,越小优先级越高

2. 高抢占优先级能 打断 低抢占优先级。同一抢占优先级的中断不能相互打断。

还有一个比较坑爹的情况:在调试外部中断时,怎么也进不了中断。后来查明的原因是 PE6引脚对应的中断源 为 EXTI9_5 。


沙发
huangcunxiake| | 2016-8-31 08:27 | 只看该作者
中断优先级是个很繁琐的事情,要一点一点的捋顺了。

使用特权

评论回复
板凳
长的帅怪我落| | 2016-8-31 08:44 | 只看该作者
看你们一个个都玩这么高端了,我在才入门、、、

使用特权

评论回复
地板
俺是村长他爹|  楼主 | 2016-8-31 21:48 | 只看该作者
长的帅怪我落 发表于 2016-8-31 08:44
看你们一个个都玩这么高端了,我在才入门、、、

别着急,慢慢来吧,
大神也都是从菜鸟慢慢练成的!

使用特权

评论回复
5
俺是村长他爹|  楼主 | 2016-8-31 21:49 | 只看该作者
huangcunxiake 发表于 2016-8-31 08:27
中断优先级是个很繁琐的事情,要一点一点的捋顺了。

重在理解,学会了,就不觉得难了!

使用特权

评论回复
6
zhuomuniao110| | 2016-8-31 23:41 | 只看该作者
优先级这个要看手册,不同的系列32,手册上可能给的优先级分组数不同。

使用特权

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

本版积分规则

66

主题

168

帖子

2

粉丝