【嵌入式】——STM32F401VE 时钟+编程定时器——中断方式按键(PA0)实现流水灯,每个灯之间的切换时延是2秒。

实验目的:中断方式按键(PA0)实现流水灯,每个灯之间的切换时延是2秒。
1.在文件stm32f4xx.h中找到STM32F40_41xxx系列HSE_VALUE(L144)改为8000000
在这里插入图片描述
在文件system_stm32f4xx.c中修改STMF40_41xxx系列
PLL_M=8 L371
PLL_N=336 L401
PLL_P=2 L403
在这里插入图片描述
systick.c

#include "stm32f4xx.h"
#include <stdint.h>
#define rSysTickCtrl *((volatile unsigned long*)0xE000E010)

static uint32_t systicknum = 0;


//定时器中断函数
void SysTick_Handler(void)
{
   
    if(systicknum != 0)
    {
   
        systicknum--;
    }    
}

void delay_ms(uint32_t m)
{
   
    systicknum = m;	
		SysTick_Config(SystemCoreClock/1000);
		NVIC_SetPriority(SysTick_IRQn, 0); 
    while(systicknum != 0);
		rSysTickCtrl &=  ~(1 << 0) ; // bit0 -> 0  disable SysTick
}

void delay_us(uint32_t u)
{
   
	systicknum = u;
	SysTick_Config(SystemCoreClock/1000000);
	//NVIC_SetPriority(SysTick_IRQn, 1); 
	while(systicknum != 0);
	rSysTickCtrl &=  ~(1 << 0) ; // bit0 -> 0  disable SysTick
}

rj_led.c

#include "rj_led.h"
#include "systick.h"

void 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nydia~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值