stm32停机

2019-07-14 15:07发布



大家好,请教一个问题:我用STM32f103c8作为主控通过功率驱动电路来控制一个有刷直流电机,当电机速度增大(增大PWM占空比)到一定程度时,stm32就停机了,PWM停止没有输出,其他功能也停止了工作,按理说应该是stm32受到干扰代码跑飞了,但奇怪的是,当我去转动几下电机轴后stm32又接着开始正常工作了(没有重启,速度还是停机前的速度),过一会又停机了,再转动几下电机轴后stm32又接着开始正常工作了,非常奇怪的是在stm32停机的时候它处于一个什么状态?难道是时钟停止了工作?请各位分析一下原因,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
dfzvzs
1楼-- · 2019-07-15 13:55
testd018 发表于 2018-12-19 15:43
先测试一下空载,确保空载时PWM正常。
然后建议换一个电机试试看,电机前端加上电容了吗?
电机调速时,用示波器检测MCU供电电压是否有被拉。

谢谢!都是在空载的情况下测试的,电机前端加过电容,现象依然会出现,stm32程序没有跑飞,也没有复位,只是停在那里不动了,如果转动几下电机有可以继续运行,就这点想不明白。
testd018
2楼-- · 2019-07-15 16:18
dfzvzs 发表于 2018-12-19 15:49
谢谢!都是在空载的情况下测试的,电机前端加过电容,现象依然会出现,stm32程序没有跑飞,也没有复位,只是停在那里不动了,如果转动几下电机有可以继续运行,就这点想不明白。

示波器测试一下晶振是否有停振?cpu不会无缘无故停在那里不动,除非进入halt之类模式,除非停振。
dfzvzs
3楼-- · 2019-07-15 17:12
testd018 发表于 2018-12-19 16:07
示波器测试一下晶振是否有停振?cpu不会无缘无故停在那里不动,除非进入halt之类模式,除非停振。

谢谢!
也怀疑过外部晶振停止,程序改成内部时钟后也会出现这种现象;如果进入halt就不会继续接着运行了。
dfzvzs
4楼-- · 2019-07-15 17:50
晶振没有停振,波形正常。
HELLOKITTYNEW
5楼-- · 2019-07-15 18:35
 精彩回答 2  元偷偷看……
dfzvzs
6楼-- · 2019-07-16 00:06
HELLOKITTYNEW 发表于 2018-12-19 16:35
看了讨论很是有感,技术就是不论不清楚。既然程序没有跑飞、说明MCU的电源电压无大问题;芯片晶振还有,核心频率也无问题;仅仅是PWM波没有了?可以从这几个地方考虑:1.产生PWM波是否采用了中断,中断程序有无检测某些信号造成信号未返回而停止在这块等着?这个可能性较大!2.PWM处于死区自锁,这个可能性不太大,因为您是 ...

本帖最后由 科科1987 于 2018-1-18 19:38 编辑

谢谢! 这是定时器的配置,没有开中断,今天测试发现其他有的GPIO输出也失效了(再次转动电机后又恢复正常了),但输入一直有效。stm32的gpio口会不会在受到干扰后锁死呢?

一周热门 更多>