找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3042|回复: 0
收起左侧

关于stm32单片机用SysTick 用作中断使小灯闪 但是程序烧进去后却一直亮

[复制链接]
ID:188172 发表于 2017-4-10 18:29 | 显示全部楼层 |阅读模式
#ifndef bsp_led_h
#define bsp_led_h

#include "stm32f10x.h"

void RCC_Configuration(void);   
void DPIO_Configuration(void);  
void SysTick_Configuration(void);
void NVIC_Configuration(void);

void Delay(u32 n);
        
#endif




#include "bsp_led.h"

void RCC_Configuration()
{
        SystemInit();
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_HCLKConfig(RCC_SYSCLK_Div1);
}

void DPIO_Configuration()
{
  GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
        GPIO_Init(GPIOB,&GPIO_InitStructure);                        
}                 

void SysTick_Configuration()
{
  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
        SysTick_Config(9000000);
}

void NVIC_Configuration()
{
  NVIC_InitTypeDef NVIC_InitStructure;
        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        
        NVIC_InitStructure.NVIC_IRQChannel =SysTick_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}


在stm32f10x_it.c中的中断处理函数:
void SysTick_Handler(void)
{
        NVIC_ClearPendingIRQ(SysTick_IRQn);
        if(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5)==RESET)
        {
           GPIO_SetBits(GPIOB, GPIO_Pin_5);
        }
        else
        {
           GPIO_ResetBits(GPIOB, GPIO_Pin_5);
        }
}





回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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