发新帖我要提问
12
返回列表
打印

呵呵,根据经验,十有**不是芯片的问题

[复制链接]
楼主: ESTM32
手机看帖
扫描二维码
随时随地手机跟帖
21
freefish| | 2008-7-18 21:16 | 只看该作者 回帖奖励 |倒序浏览

测试通过啊

万利的EV-STM32F,测试通过,顺利进入while

使用特权

评论回复
22
freefish| | 2008-7-18 21:22 | 只看该作者

https://bbs.21ic.com/upfiles/img/20079/200792213558735.gif

使用特权

评论回复
23
ESTM32|  楼主 | 2008-7-18 21:22 | 只看该作者

我真服了

我长见识了

使用特权

评论回复
24
ESTM32|  楼主 | 2008-7-18 21:35 | 只看该作者

回22楼

1:这个程序能正常运行,说明我编写的程序没有错误。但是在我机器和一位网友的机器上都不能很好的运行。
2:这个程序第一次可以正常运行(见我上面的相关叙述),但是程序第二次就不能正常运行,不知道你运行过几次,你可以在main()函数里定义一点东西,如int a=0;之类,修改一下,然后从新编译执行,不知道是否还可以正常运行
3:我的芯片是STM32F103VBT6,不知道你用的什么芯片
另,感谢你对对本人帖子的关注

使用特权

评论回复
25
freefish| | 2008-7-18 22:55 | 只看该作者

工程删了

为防止和我其他的工程混了,测试了后就删除了啊.我用的就是VBT6,是在RAM中运行的,要是两次运行不一样,是很奇怪的事情,预计不是进了你想要的中断,而是到了其他高优先级别的中断,注意跟踪一下,我曾遇到过进入内存异常中断的情况,有时候是由于设置不当引起的,使用这种库函数时,由于不是操作具体的寄存器,在一些默认配置里很容易出现问题.在你的中断服务程序里合适位置放个断点,看是如何运转的.

使用特权

评论回复
26
freefish| | 2008-7-18 22:58 | 只看该作者

另外

另外,建议在没有配置好设备和GPIO前,不要开放相关中断,以免引起不想要的中断出现.再有问题,明天晚上讨论,白天我连不上外网.正在熟悉这个芯片,打算用它做个测控装置.据说,ST的芯片抗扰能力世界第一,第二是小日本的东芝的片子.反正我把晶体拔下来后STM32还能运行,有个用FREESCALE的DSP的朋友张大了嘴好久没合上.
共同努力,共同进步!好好学习,天天向上!

使用特权

评论回复
27
香水城| | 2008-7-19 12:22 | 只看该作者

18楼已经给出了解决问题的方向,提供一个尝试方案供参考

楼主可以试试看以下方法能否解决你的问题,在main()中的所有语句前加2个调用:
  NVIC_DeInit();
  GPIO_DeInit(GPIOD);

使用特权

评论回复
28
ESTM32|  楼主 | 2008-7-19 18:50 | 只看该作者

找到症结所在

程序在复位状态下,EXTI_PR寄存器应该为0;且按照手册说明,EXTI_PR寄存器可以被清除为0;
但是在程序中,这两点都不满足。
操作及现象如下:
点击软件复位,EXTI寄存器值不变(我想应该复位为0);
程序中加入 EXTI->PR=0XFFFF;不能清除PR寄存器。如下图
寄存器为什么不能被复位和程序修改呢?

使用特权

评论回复
29
ESTM32|  楼主 | 2008-7-19 18:53 | 只看该作者

手册快照

这是手册上的说明如图

使用特权

评论回复
30
香水城| | 2008-7-19 18:58 | 只看该作者

这是IAR调试软件+JLink的Bug

如果使用ST-Link2,没有这个问题。

使用特权

评论回复
31
ESTM32|  楼主 | 2008-7-19 19:46 | 只看该作者

回香主

我使用是ST-LINK2,万利公司的,
调试环境分别使用了IAR和MDK,
都存在这个问题
我现在测试一下使用串口烧写程序,不使用仿真器

使用特权

评论回复
32
香水城| | 2008-7-19 20:46 | 只看该作者

可以结帖了

看看你的运行步骤:
1:断电配置boot  
2:配置程序
3:上电下载 正常
4:第一次运行 正常
5:软件复位
6:第二次运行(或者单步运行) 死机


关键问题出在步骤5,IAR调试软件上按软件复位按钮时,在被调试的芯片端并没有出现复位信号,甚至在下载新的程序时也没有出现复位信号;ST-Link2部分解决了后一个问题,既在下载新的程序时对芯片实施软件复位,但ST-Link2并解决不了前一个问题。


希望楼主以后不要轻易就下结论——芯片有BUG,这种说法是极不负责任的。如果想引起别人注意,也请换一种说法。

使用特权

评论回复
33
ESTM32|  楼主 | 2008-7-19 20:50 | 只看该作者

测试结果

确实是ST-LINK2有bug,利用串口烧写程序可疑正常正常执行,
另,为我说STM32有bug道歉,
另外提几点建议:
1、手册问题,在中断部分说的太少,不详细,连寄存器都没有说全,仅仅说了EXTI中断寄存器,上面说让看arm公司的某某手册,最好不要这样,其实我看了,没看懂。
2、库函数V1.0与V2.0不兼容,且没有说明

使用特权

评论回复
34
香水城| | 2008-7-19 20:54 | 只看该作者

这不是ST-Link2的Bug,是IAR EWARM的Bug

使用IAR EWARM + JLink也有同样的问题。

使用特权

评论回复
35
ESTM32|  楼主 | 2008-7-19 21:09 | 只看该作者

又说错了

又说错了,抱歉

使用特权

评论回复
36
lisn3188| | 2008-7-21 22:44 | 只看该作者

怀疑

别总是怀疑硬件的问题
你要是说STM32有问题那下一个测试程序跑跑看不就知道了吗?
脚踏实地的检查修改你的程序才是硬道理

使用特权

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

本版积分规则