打印
[应用相关]

STM32程序跑飞死机问题

[复制链接]
14151|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nylyt|  楼主 | 2009-8-15 22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是STM32103VBT6,主要功能是利用定时器模拟15路IO频率输出控制步进电机,和外部通过SPI和另个STM32通讯,现在问题是控制电机的STM32偶而死机,和电机的驱动连接是通过磁隔离芯片的干扰经过测试无,不知道为什么老化测试的时候会出现死机必须重新上电
沙发
午夜霓虹| | 2009-8-17 08:00 | 只看该作者
哈哈,检查晶振吧。

使用特权

评论回复
板凳
zjf0000| | 2009-8-17 08:25 | 只看该作者
我的程序也是,主程序死掉,只有中断还活着,是不是nvic配置的不合适?

使用特权

评论回复
地板
午夜霓虹| | 2009-8-17 13:20 | 只看该作者
nvic库里边已经配置好了,那就是你主程序写的有问题。

使用特权

评论回复
5
nylyt|  楼主 | 2009-8-17 15:08 | 只看该作者
晶振没问题啊,现在是IO无输出频率,导致电机卡死。此现象是偶而出现。但不是一次了。所以很郁闷。加看门狗复位感觉不是解决问题的根本。

使用特权

评论回复
6
TRUE_ARM| | 2009-8-17 15:45 | 只看该作者
我也遇到这样的问题:
程序运行几个小时,或更长时间,串口通讯会出现一段的错误,
很郁闷! 没有一定的规律,查找起来很麻烦!,不知道跟CPU本身有没有关系?

使用特权

评论回复
7
香水城| | 2009-8-17 19:13 | 只看该作者
楼主问题的关键是检查在IO无输出频率时,程序跑到哪里去了,为什么?

使用特权

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

使用特权

评论回复
9
香水城| | 2009-8-18 06:57 | 只看该作者
你的SPI速率是多少?所有中断加在一起的中断频率是多少?怀疑你的中断过于频繁,造成系统的响应处于临界状态。

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

使用特权

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

使用特权

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

使用特权

评论回复
12
香水城| | 2009-8-18 17:17 | 只看该作者
你的问题不在对STM32的使用是否熟练,而是对整体项目的组织和规划,这是一个需要长期经验积累的问题。

使用特权

评论回复
13
nylyt|  楼主 | 2009-8-19 01:12 | 只看该作者
多谢指点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

146

主题

296

帖子

1

粉丝