打印
[应用相关]

关于STM32初始化延时问题

[复制链接]
991|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
后会无期1|  楼主 | 2015-4-18 20:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32, rc, ce, TI, pi
请问STM32初始化告诉晶振判断稳定后完,I/O,TIM,USART初始化后,
            进入应用前时候要不要加入delay?
            
            我测得的现象是这样的,
            
            上电!
            _BSP_IntInit();
            _RCC_DeInit();
            。。。。。。。。。
            。。。。。。。
            _RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
            _while (RCC_GetSYSCLKSource() != 0x08) {}
            
            (1)
            
            _I/O,SPI,USART,初始化函数
            {}
            
            _调用SPI读FRAM程序。
            {}
            
            【注】如果(1)处不加延时则,读取FRAM不稳定,有时候对有时候错,如果加入则没问题我这里实验的是加入100MS软件延时就不会出现读写错误。
            
            请问:我原来的板子没加延时没返现这个问题,现在的板子跟原来的电路没什么区别,但是却出现了这个问题,不知道为什么,对于STM32这里是否加上好些,还是根本就不要加延迟,我的程序哪里有问题?
沙发
我思故我在12345| | 2015-4-18 20:34 | 只看该作者
_while (RCC_GetSYSCLKSource() != 0x08) {} 内已经有延时。

使用特权

评论回复
板凳
后会无期1|  楼主 | 2015-4-18 20:35 | 只看该作者
我思故我在12345 发表于 2015-4-18 20:34
_while (RCC_GetSYSCLKSource() != 0x08) {} 内已经有延时。


谢谢 ,问题已经解决了,不是STM32上电不稳的事情
是FRAM的上电后要delay一段时间等待其内部初始化,手册上写大约是10ms
我实际测试需要20ms就OK了

使用特权

评论回复
地板
我是MT| | 2015-4-18 20:36 | 只看该作者
是不是fram的问题?

使用特权

评论回复
5
后会无期1|  楼主 | 2015-4-18 20:37 | 只看该作者
问题解决了
还有个情况也说下,也能说明是电压刚上电不稳的情况
就是我用JLINK仿真器仿真,无需加延时也OK。拿下仿真器重新上电不加延时就不行。
基于以上我分析是由于加入仿真器,程序是由仿真器控制的程序运行及复位过程,在这之前板子早已上电所以
FRAM有足够时间来稳定。
为了验证我的分析,我又将板子单独供电运行(脱离仿真器)
发现不加延时不行,但是在经过我手动复位后发现可以正常运行。
OK,得出结论,还是因为刚上电瞬间FRAM的tUP时间不够导致的 FRAM读写操作失败!!!
因为我的示波器只有一个探头,所以无法捕捉上电瞬间VDD与 FRAM之间的关系。
不过我相信以上的两个实验足以证明了我的推断!

使用特权

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

本版积分规则

20

主题

208

帖子

0

粉丝