OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4693|回复: 3

关于systick 求助

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-4-8
在线时间
0 小时
发表于 2013-7-17 16:41:55 | 显示全部楼层 |阅读模式
我们导师给STM32变了一个函数框架,让我们用这个框架来练习,之前用的是原子给编的函数,想在这个框架上运行一下,我们导师用的也是库函数3.5版本,用了那个延时函数怎么不行?下边是函数部分,delay_ms()产生的不是1ms延时,请问这是怎么回事?
#include "stm32f10x.h"
#include "stm32_Init.h"
#include "Retarget.h"  
#include "stm32f10x_IRQ.h"
void delay_ms(u32 n)   //查询方式产生1ms延时
{
SysTick->CTRL=0x00; //选择外部时钟源,即HCLK
SysTick->VAL=0x00; //清空计数器
SysTick->LOAD=n*72000; //装载计数器
SysTick->CTRL|=0x01;        //开始倒数
while(!(SysTick->CTRL&(1<<16)));        //等待时间到达 
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL=0x00; //清空计数器
}
main()
{
SystemInit();
SystemCoreClockUpdate(); //在系统时钟SystemCoreClock变化的时候调用,以更新一个全局变量SystemCoreClock,默认SystemCoreClock=72MHz
//SysTick_Config(SystemCoreClock/100); // 10ms SysTick interrupt
stm32_Init();
EnableIRQs();
// RCC->APB2ENR|=1<<3;     //使能PORTB时钟   (位操作)  
// RCC->APB2ENR|=1<<6;     //使能PORTE时钟
RCC->APB2ENR|=0x0048;   //使能PORTB、PORTE时钟 (字操作)
GPIOB->CRL&=0XFF0FFFFF; //清除PB.5原来位的设置,同时不影响其他位的设置 
GPIOB->CRL|=0X00300000; //PB.5 推挽输出    
        GPIOB->ODR|=1<<5;       //PB.5 输出高  
GPIOE->CRL&=0XFF0FFFFF; //清除PE.5原来位的设置,同时不影响其他位的设置
GPIOE->CRL|=0X00300000; //PE.5推挽输出
GPIOE->ODR|=1<<5;       //PE.5输出高
while(1)
{  
GPIOB->BSRR=0x00000020; //   点亮LED0
GPIOE->BSRR=0x00200000; //   熄灭LED1
delay_ms(500);
GPIOB->BSRR=0x00200000; // 熄灭LED0
GPIOE->BSRR=0x00000020; // 点亮LED1
delay_ms(500);
}
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 17:15:18 | 显示全部楼层
仿真进去看看就知道了.是哪里问题.
另外,我们的代码在这个上面,也是可以跑的啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-4-8
在线时间
0 小时
 楼主| 发表于 2013-7-17 17:52:26 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我找到问题所在了,但是我发现delay_ms()这个函数的可移植性不强,移植到到别的程序,延时会产生一点误差......
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-4-8
在线时间
0 小时
 楼主| 发表于 2013-7-17 22:23:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
完全解决了,delay_ms()能达到精确1ms延时,不好意思.....
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-17 18:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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