你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用stm32cube,tim的sr寄存器无法修改

[复制链接]
蔡老四 提问时间:2017-5-4 18:27 /
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
htim1.Instance->SR=0;
htim1.Instance->SR&=0xfffe;
新手,刚刚用hal,是不是那里设置到锁起来了.然后其他寄存器像CCR1,ARR都可以直接修改.求解.
收藏 1 评论5 发布时间:2017-5-4 18:27

举报

5个回答
asmhai 回答时间:2017-5-5 06:13:36
早上好!签到来了。
废鱼 回答时间:2017-5-5 10:33:08
楼主问题要描述详细一些,贴出来的代码是你自己写的吗?当发生事件后,再进行清除操作。
蔡老四 回答时间:2017-5-5 22:16:13
谢谢关注,当时找问题找到头大没描述清楚.@安 我用的是stm32cube 生成的项目,ide用的是 truestudio.
我想做的就是输出连续输出几个pwm方波后即时暂停(周期大概0.5us),然后用hal的tim的中断,void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* htim);发现一进中断立刻停都回慢了4个周期,然后自己写一个函数,想一直查询sr,一UIF变动立马关闭.
void TIM_Update(TIM_HandleTypeDef * htim)
{
        uint32_t ti=htim->Instance->SR;
        while((ti&&0x01)==0x00){
                ti=htim->Instance->SR;
        }
        //htim->Instance->ARR=1000;
        __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
}
然后问题就是修改ARR就有效,然后
htim.Instance->SR=0;
htim.Instance->SR&=0xfffe;
这两种都无效.而且直接改成 htm1也是一样效果.
求教,或者有什么办法关闭pwm.先谢谢.
废鱼 回答时间:2017-5-6 08:41:32
关闭TIM功能。可以用类似RTC的关闭函数HAL_RTC_MspDeInit(),在stm32f4xx_hal_msp.c中。
蔡老四 回答时间:2017-5-6 09:53:33
先谢谢了.之前都是做stm8的,突然跳过来32,还是有点过急,先去学习一下,再来继续.

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版