打印
[STM32F4]

请教这段代码详解

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


如图,这是原视频这段代码的解释,可我还是不太明白。两个剪头所指的else。第一个中的STA++代表什么意思呢?第二个else语句后面的注释为第一次捕获上升沿,而在前面的if语句中已经捕获一次上升沿了(注释为1发生捕获事件),为什么第二次还能捕获上升沿呢?
沙发
hjl2832| | 2016-1-21 14:48 | 只看该作者
请注意看清楚2个IF条件,一个是TIM_IT_UPDATA,一个是TIM_IT_CC1,查F4的编程参考手册,TIMX_SR状态寄存器的第0位是UIF(更新中断标志位),第1位是CC1IF(CC1IF:捕获/比较 1 中断标志),这2 个是有区别的。
”位 5 保留,必须保持复位值。
位 4 CC4IF:捕获/比较 4 中断标志 (Capture/Compare 4 interrupt flag)
请参见 CC1IF 说明
位 3 CC3IF:捕获/比较 3 中断标志 (Capture/Compare 3 interrupt flag)
请参见 CC1IF 说明
位 2 CC2IF:捕获/比较 2 中断标志 (Capture/Compare 2 interrupt flag)
请参见 CC1IF 说明
位 1 CC1IF:捕获/比较 1 中断标志 (Capture/compare 1 interrupt flag)
如果通道 CC1 配置为输出:
当计数器与比较值匹配时,此标志由硬件置 1,中心对齐模式下除外(请参见 TIMx_CR1 寄
存器中的 CMS 位说明)。但需要通过软件清零。
0:不匹配
1:TIMx_CNT 计数器的值与 TIMx_CCR1 寄存器的值匹配。当 TIMx_CCR1 的值大于
TIMx_ARR 的值时,CC1IF 位将在计数器发生上溢(递增计数模式和增减计数模式下)或下
溢(递减计数模式下)时变为高电平。
如果通道 CC1 配置为输入:
此位将在发生捕获事件时由硬件置 1。通过软件或读取 TIMx_CCR1 寄存器将该位清零。
0:未发生输入捕获事件
1:TIMx_CCR1 寄存器中已捕获到计数器值(IC1 上已检测到与所选极性匹配的边沿)
位 0 UIF:更新中断标志 (Update interrupt flag)
● 该位在发生更新事件时通过硬件置 1。但需要通过软件清零。
0:未发生更新。
1:更新中断挂起。该位在以下情况下更新寄存器时由硬件置 1:
● 上溢或下溢(对于 TIM2 到 TIM5)以及当 TIMx_CR1 寄存器中 UDIS = 0 时。
● TIMx_CR1 寄存器中的 URS = 0 且 UDIS = 0,并且由软件使用 TIMx_EGR 寄存器中的
UG 位重新初始化 CNT 时。
TIMx_CR1 寄存器中的 URS=0 且 UDIS=0,并且 CNT 由触发事件重新初始化时(参见同步
控制寄存器说明)。“

然后那个TIM5CH1_CAPTURE_SATA是状态寄存器的状态位的数据,TIM5CH1_CAPTURE_SATA|=0x40,是将TIM5CH1_CAPTURE_SATA位第6位置1,而位6是:
“位 6 TIF:触发中断标志 (Trigger interrupt flag)
在除门控模式以外的所有模式下,当使能从模式控制器后在 TRGI 输入上检测到有效边沿
时,该标志将由硬件置 1。选择门控模式时,该标志将在计数器启动或停止时置 1。但需要通
过软件清零。
0:未发生触发信号 (TRGI) 事件
1:触发信号 (TRGI) 中断挂起”

将位6置1就表示有中断事件触发了,至于TIM5CH1_CAPTURE_SATA++,这里我觉得没写好,因为
“位 15:13 保留,必须保持复位值。
位 12 CC4OF:捕获/比较 4 重复捕获标志 (Capture/Compare 1 overcapture flag)
请参见 CC1OF 说明
位 11 CC3OF:捕获/比较 3 重复捕获标志 (Capture/Compare 1 overcapture flag)
请参见 CC1OF 说明
位 10 CC2OF:捕获/比较 2 重复捕获标志 (Capture/compare 2 overcapture flag)
请参见 CC1OF 说明
位 9 CC1OF:捕获/比较 1 重复捕获标志 (Capture/Compare 1 overcapture flag)
仅当将相应通道配置为输入捕获模式时,此标志位才会由硬件置 1。通过软件写入“0”可将
该位清零。
0:未检测到重复捕获
1:TIMx_CCR1 寄存器中已捕获到计数器值且 CC1IF 标志已置 1。
位 8:7 保留,必须保持复位值。“
只有大于8以上才是重复捕获标志位。


新建位图图像.jpg (139.44 KB )

新建位图图像.jpg

使用特权

评论回复
板凳
怎么掉了呢| | 2016-1-21 14:55 | 只看该作者
发生捕获事件分两种情况:一个是捕获成功一次高电平(就是上升沿后然后下降沿),还有个就是捕获中计时器溢出。

使用特权

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

本版积分规则

8

主题

12

帖子

0

粉丝