标题: STM32输出捕获TIM5_CH1_CAPTURE_STA问题 [打印本页]

作者: 木木哒的木木    时间: 2019-7-28 11:10
标题: STM32输出捕获TIM5_CH1_CAPTURE_STA问题
TIM5_CH1_CAPTURE_STA不是程序中定义的一个变量吗?为什么可以看做寄存器来判断是否捕获成功?


程序中我们定义了一个 u8 类型的全局变量 TIM5_CH1_CAPTURE_STA,此变量
可以看成类似一个字节的寄存器,bit7 用来表示捕获完成,bit6 用来表示捕获
到高电平,bit5-0 用来表示捕获高电平后定时器溢出次数。

以下为部分代码:
主函数:
u8 TIM5_CH1_CAPTURE_STA; //输入捕获状态
u16 TIM5_CH1_CAPTURE_VAL;//输入捕获值
中断函数:
if((TIM5_CH1_CAPTURE_STA&0x80)==0) //还未成功捕获
{
     if(TIM_GetITStatus(TIM5,TIM_IT_Update)) //发生更新中断
    {
        if(TIM5_CH1_CAPTURE_STA&0X40)//捕获到了高电平


作者: aaaaaa。    时间: 2019-7-28 14:18
TIM5_CH1_CAPTURE_STA是程序中定义的一个变量,TIM5_CH1_CAPTURE_STA=0时,表示还未捕获,TIM5_CH1_CAPTURE_STA=1时,表示捕获成功。
bit7 用来表示捕获完成,也就是TIM5_CH1_CAPTURE_STA=1000 0000;
bit6 用来表示捕获到高电平,也就是TIM5_CH1_CAPTURE_STA=0100 0000。
(bit :0~7)
作者: 木木哒的木木    时间: 2019-7-28 15:22
aaaaaa。 发表于 2019-7-28 14:18
TIM5_CH1_CAPTURE_STA是程序中定义的一个变量,TIM5_CH1_CAPTURE_STA=0时,表示还未捕获,TIM5_CH1_CAPTURE ...

定义完以后,没有初始化,有点迷
作者: 张坚    时间: 2019-7-29 08:40
u8类型代表定义的变量可以看作一个8位二进制数,按理来说TIM5_CH1_CAPTURE_STA是要初始化一下,TIM5_CH1_CAPTURE_VAL可以不用
作者: yzwzfyz    时间: 2019-7-29 09:14
TIM5_CH1_CAPTURE_STA 应该是#INCLUDE XX 中已定义好了,它已被指向了TIM5的状态寄存器。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1