野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20959|回复: 10

systick做延时帮看下哪里出问题

[复制链接]
发表于 2014-4-27 14:16:41 | 显示全部楼层 |阅读模式
本帖最后由 wowapm70 于 2014-4-27 14:28 编辑

我写的程序放在附件里面了   求大家帮忙看看  哪里出的问题  我用普通延时LED闪烁   可是用systick延时 程序就死在延时里面了   应该是systick没配置好  没进中断还是怎么了

User.rar

4.01 KB, 下载次数: 14

User里面的

回复

使用道具 举报

发表于 2014-4-27 14:50:22 | 显示全部楼层
不用看你的程序,肯定是没有注意在stm32f10x_it.c文件编写systick的中断服务函数
回复 支持 反对

使用道具 举报

发表于 2014-4-27 14:52:41 | 显示全部楼层
看不出什么问题,你是把bsp_systick里面的全部都放到main函数里面实现了而已。
你再看看吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 15:35:53 | 显示全部楼层
火哥,我就是把你的程序原封不动的黏贴过来还不行,你视频和文档的资料都仔细看了,也没发现什么问题。是不是因为我把程序下载到了RAM而不是flash里面的原因。我看到网上说flash有次数限制,我就按他们说的修改了下载到0x20000000 那段区域了,点debug调试就可以看到程序的效果。我试别的程序可以,就这个systick不行是不是和下载在0x20000000有关
回复 支持 反对

使用道具 举报

发表于 2014-4-27 15:43:30 | 显示全部楼层
wowapm70 发表于 2014-4-27 15:35
火哥,我就是把你的程序原封不动的黏贴过来还不行,你视频和文档的资料都仔细看了,也没发现什么问题。是不 ...

那你试试下载到flash里面,从你的程序,我看不出什么原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 15:49:19 | 显示全部楼层
火哥,下载到flash就没问题了。我刚在网上查了下    RAM运行要中断的话,需要设置中断向量。BOOT0,BOOT1要选对,然后,启动后需要这样一个操作:
SCB->VTOR = 1<<29;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 16:07:54 | 显示全部楼层
谢谢,火哥 百忙之中帮看代码。 感激ing   加上SCB->VTOR = 1<<29; 就没问题了
回复 支持 反对

使用道具 举报

发表于 2014-4-27 16:09:24 | 显示全部楼层
wowapm70 发表于 2014-4-27 15:49
火哥,下载到flash就没问题了。我刚在网上查了下    RAM运行要中断的话,需要设置中断向量。BOOT0,BOOT1要 ...

RAM运行要中断的话,需要设置中断向量。BOOT0,BOOT1要选对,然后,启动后需要这样一个操作:
SCB->VTOR = 1<<29;

能不能说的具体点,让我也学习下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 16:33:16 | 显示全部楼层
在stm32参考手册中文  24页里面有写到       注意:  当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中
回复 支持 反对

使用道具 举报

发表于 2014-4-27 16:51:30 | 显示全部楼层
需要把中断向量表放到RAM里,这样才能正常RAM启动,这个应该要修改linker文件吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 17:06:53 | 显示全部楼层
在CM3权威指南第116页 ,表7.7里有说明向量表偏移量寄存器VTOR 第29位 置1在RAM区  置0在CODE区
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-27 18:06 , Processed in 0.049276 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表