找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5262|回复: 4
收起左侧

STM32输出捕获TIM5_CH1_CAPTURE_STA问题

[复制链接]
ID:584967 发表于 2019-7-28 11:10 | 显示全部楼层 |阅读模式
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)//捕获到了高电平

回复

使用道具 举报

ID:511461 发表于 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)
回复

使用道具 举报

ID:584967 发表于 2019-7-28 15:22 | 显示全部楼层
aaaaaa。 发表于 2019-7-28 14:18
TIM5_CH1_CAPTURE_STA是程序中定义的一个变量,TIM5_CH1_CAPTURE_STA=0时,表示还未捕获,TIM5_CH1_CAPTURE ...

定义完以后,没有初始化,有点迷
回复

使用道具 举报

ID:432703 发表于 2019-7-29 08:40 | 显示全部楼层
u8类型代表定义的变量可以看作一个8位二进制数,按理来说TIM5_CH1_CAPTURE_STA是要初始化一下,TIM5_CH1_CAPTURE_VAL可以不用
回复

使用道具 举报

ID:123289 发表于 2019-7-29 09:14 | 显示全部楼层
TIM5_CH1_CAPTURE_STA 应该是#INCLUDE XX 中已定义好了,它已被指向了TIM5的状态寄存器。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表