13425|12

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32程序跑飞死机问题 [复制链接]

                                 用的是STM32103VBT6,主要功能是利用定时器模拟15路IO频率输出控制步进电机,和外部通过SPI和另个STM32通讯,现在问题是控制电机的STM32偶而死机,和电机的驱动连接是通过磁隔离芯片的干扰经过测试无,不知道为什么老化测试的时候会出现死机必须重新上电
此帖出自stm32/stm8论坛

最新回复

                                 多谢指点  详情 回复 发表于 2009-8-19 01:12
点赞 关注
 

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 哈哈,检查晶振吧。
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 我的程序也是,主程序死掉,只有中断还活着,是不是nvic配置的不合适?
此帖出自stm32/stm8论坛
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 nvic库里边已经配置好了,那就是你主程序写的有问题。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 晶振没问题啊,现在是IO无输出频率,导致电机卡死。此现象是偶而出现。但不是一次了。所以很郁闷。加看门狗复位感觉不是解决问题的根本。
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
我也遇到这样的问题:
程序运行几个小时,或更长时间,串口通讯会出现一段的错误,
很郁闷! 没有一定的规律,查找起来很麻烦!,不知道跟CPU本身有没有关系?
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 楼主问题的关键是检查在IO无输出频率时,程序跑到哪里去了,为什么?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
程序很简单,中断用了3个.配置SPI最高其次TIM4和TIM2,SPI和TIM4捆绑一起做为中断接受数据和超时判断,TIM2产生10K的基础频率,然后主程序中分割产生20路的IO频率输出.现在想改为SPI利用DMA接受,改下程序结构减少中断次数,DMA如果接收固定长度数据不用超时判断了吧,如果对方发多数据或少数据只要会DMA中断然后舍弃这组数据就可吧?
还有个问题是有时STM32下完程序后不能启动必须人工复位才行,前提是对同一个程序当然此程序在别的板测试过是无问题的,出现上电后必须人工复位才OK运行原因有那些呢?焊接原因或者外围器件有无也会引起吗?我测量VDDA和NRST电压波形都是正常的
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
你的SPI速率是多少?所有中断加在一起的中断频率是多少?怀疑你的中断过于频繁,造成系统的响应处于临界状态。

下完程序后不能启动必须人工复位的问题,应该检查是程序没有启动还是电路中其它部分没有工作。但一般这个问题是复位电路的问题,上个图看看。
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 TIM2中断频率是10K,SPI中断560K,没有利用DMA接收,下次SPI通讯间隔10MS,TIM4是在SPI接收中断中配置定时1MS的超时判断.现在要修改为DMA接受数据.DMA配置为正常模式接受,接受完数据串口,再次启动DMA,有个问题是第一次上电后接受数据正确,第二次接收数据串的首字节是第一次数据串的尾.出现数据错位.后看了论坛,对SPI再进去一次初始化解决了问题.但有无标准格式呢?我意思对DMA接受任何外设有无个标准程序结构,可能我懒,希望程序是标准化步骤.对SPI 重新SPI_Configuration()烦琐,重新DMA接收的时候对SPI 的操作后我通过读数据操作也解决问题,不明白为什么清楚SPI的RXNE标志都是不行呢,看香水原来回答论坛说的先禁止然后初始化在启动理论是对的,但对外设通道的操作如何清缓冲区呢?
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 
SPI_I2S_ReceiveData(SPI1);是不是相当于清除缓冲区?
对STM32的使用也超过半年,一些简单项目应用没问题.但牵扯比较多的任务机制的时候感觉应用还是很麻烦,容易出现程序跑到HARDFAULT,可能我对芯片了解还是皮毛,上手主要看的还是库函数,对技术手册真的没怎看,语言组织感觉写的一般,而对函数的介绍又只停留在应用,搞的我现在只会用库,毕竟项目一般都有时间要求,急功近利吧.希望STM能出一本书把论坛各种各样问题汇集,然后解决方法也给出,也就是经验吧.让人可以少走弯路,省的斑竹很辛苦不厌其烦回答问题.
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 你的问题不在对STM32的使用是否熟练,而是对整体项目的组织和规划,这是一个需要长期经验积累的问题。
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 多谢指点
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表