打印

有关于SysTick的问题

[复制链接]
1311|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdlulu|  楼主 | 2011-4-21 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是STM32的初学者,现有有问题不明白,向各位询问一下
#include "stm32f10x.h"
vu32 TimingDelay;


void GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_13|GPIO_Pin_3|GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOD,&GPIO_InitStructure);
}

void RCC_Configuration(void)
{
        SystemInit();
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
}

void SysTick_Configuration(void)
{
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
        NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 3, 0);
        SysTick_SetReload(72000);
        SysTick_ITConfig(ENABLE);
}
void Delay(u32 nTime)
{
        TimingDelay = nTime;
        SysTick_CounterCmd(SysTick_Counter_Enable);
        while(TimingDelay != 0);
        SysTick_CounterCmd(SysTick_Counter_Disable);
        SysTick_CounterCmd(SysTick_Counter_Clear);
}

void SysTickHandler(void)
{
        if(TimingDelay != 0)
        TimingDelay--;
}

void InitAllPeriph(void)
{
        GPIO_Configuration();
        RCC_Configuration();
        NVIC_Configuration();
        SysTick_Configuration();
}

int main(void)
{
        InitAllPeriph();
        while(1)
        {
           GPIO_SetBits(GPIOD,GPIO_Pin_7);
           Delay(1000);
           GPIO_ResetBits(GPIOD,GPIO_Pin_7);
           Delay(1000);
        }       
}
沙发
ccxlslr| | 2011-4-21 13:35 | 只看该作者
你TMD以为你是谁啊!
讨厌!这种什么都没用的贴子!

使用特权

评论回复
板凳
zhiyonghe| | 2011-4-21 14:18 | 只看该作者
楼主你问什么??
===================================
整个程序就是个简单的用SysTick做延时的程序……
SysTick->LOAD=72000 ,
估计楼主的时钟为72M 故SysTick每1ms中断一次
则Delay(1000)表示延时1S

使用特权

评论回复
地板
zuoqingxiaohui| | 2011-4-22 11:28 | 只看该作者
。。。。。。。。。。。。。。。。。。

使用特权

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

本版积分规则

0

主题

18

帖子

1

粉丝