[STM32F1] 请教各位前辈用HAl怎样关闭定时器和清除

[复制链接]
4266|40
 楼主| llljh 发表于 2021-8-8 20:29 | 显示全部楼层 |阅读模式
定时器已经开启并能用了  用的是比较输出的反转输出  ;但
现在我想用一个按键中断服务函数关掉其
我本来用的是这两个函数 因为在初始化
中用到了相反函数START
{
                HAL_TIM_Base_Stop(&htim1);// 停止定时器
        __HAL_TIM_DISABLE_IT(&htim1, TIM_IT_CC4);//关闭通道4
}
上面注释的是我本意 结果...
// 停止定时器 -----> 不生效
//关闭通道4 ----> 把我其他定时器也关了 并且还是有持续低脉冲输出
还有定时器该怎样清除 外部中断关闭后还有另一个按键继续启动  不能影响下次整个执行,
下次在按键开启后执行又该怎样初始化....
jiahy 发表于 2021-8-8 20:32 | 显示全部楼层
stop改成Start
 楼主| llljh 发表于 2021-8-8 20:34 | 显示全部楼层
Start不是开始的意思吗?
 楼主| llljh 发表于 2021-8-8 20:36 | 显示全部楼层
我要停止耶。而且
要影响指定定时器   关闭指定定时器  并清除相关位 接着马上开启定时器   并且是指定定时器和通道  其他定时器继续
jlyuan 发表于 2021-8-8 20:40 | 显示全部楼层
我试过,Start可使能定时器,Stop可以失能定时器,但CNT任然在计数
juventus9554 发表于 2021-8-8 20:42 | 显示全部楼层
你应该在Stop后读cnt并清零CNT供下次读取。
 楼主| llljh 发表于 2021-8-8 20:46 | 显示全部楼层
我现在要用外部中断的内容 去清除掉定时器本来正在运行的内容   怎么才能做得到?
 楼主| llljh 发表于 2021-8-8 20:49 | 显示全部楼层
试过了 只是初始化不行 ,还得清除相关位
 楼主| llljh 发表于 2021-8-8 20:51 | 显示全部楼层
请前辈 大神们告知下 在HAL中应该怎么办
dengdc 发表于 2021-8-8 20:54 | 显示全部楼层
不会吧,我下面的代码百试百灵....你是OC输出?如果是-->HAL_TIM_OC_Stop

            HAL_TIM_Base_Stop_IT(&htim7);
            __HAL_TIM_SET_COUNTER(&htim7,0);
zhanghqi 发表于 2021-8-8 20:56 | 显示全部楼层
定时器的启停通过   __HAL_TIM_ENABLE(htim); /__HAL_TIM_DISABLE()控制,最终是操作 TIMx_CR1_CEN位。
zhenykun 发表于 2021-8-8 21:00 | 显示全部楼层
定时器关闭了计数器是不会计数的。
jlyuan 发表于 2021-8-8 21:03 | 显示全部楼层
而比较通道的关闭,需通过TIM_CCxChannelCmd( )来控制,最终是操作TIMXx_CCER_CCxE位。
jlyuan 发表于 2021-8-8 21:06 | 显示全部楼层
这里的函数基于stm32cube库,你弄清操作哪些就好
 楼主| llljh 发表于 2021-8-8 21:08 | 显示全部楼层
他好像给我其他定时器也关掉了
 楼主| llljh 发表于 2021-8-8 21:11 | 显示全部楼层
停止方法找到了  但是中断结束后他好像还继续执行定时器中断服务函数  怎样把他清除掉
 楼主| llljh 发表于 2021-8-8 21:14 | 显示全部楼层
我现在主要想清除定时器那边在运行的程序  定时器中断服务中有很多程序
 楼主| llljh 发表于 2021-8-8 21:16 | 显示全部楼层
我想用外部中断清除掉  再马上重新打开定时器
 楼主| llljh 发表于 2021-8-8 21:25 | 显示全部楼层
Start不是开始的意思吗  另外我在中断中还把定时器初始化加进去也没用
renyaq 发表于 2021-8-8 21:25 | 显示全部楼层
那具体代码该怎样实现呢   hal不懂 且没中文手册  词典翻译的关键词几乎一个意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部