LED小灯点亮复习

本文深入解析了STM32嵌入式系统的LED闪烁程序,详细介绍了使用中断服务函数和SysTick定时器实现LED闪烁的过程。通过具体的代码示例,展示了系统初始化、LED初始化以及中断回调机制的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "MyIncludes.h"

int main(void)
{
	System_Init();
	
	LED_Init();
	
	while(1)
	{
		LED_Flash();
	}

}

首先应该知道.h文件类似粘连剂,也可以说是驱动文件,一个工具箱。比如MyIncludes.h
具体如何实现还是看.c文件。
首先看main.c文件的main函数部分。
系统初始化,小灯初始化,小灯闪烁。
步骤很清晰。

#include "MyIncludes.h"

u16 sys_cnt = 0;
void systick_isr(void)
{
	if(sys_cnt < 1000) sys_cnt++;
	else
	{
		sys_cnt = 0;
		HAL_GPIO_TogglePin(GPIOI,GPIO_PIN_1);
	}
}

int main(void)
{
	System_Init();
	
	LED_Init();
	
	SysTick_Init(systick_isr);
	
	while(1)
	{

	}
}

这个程序的要点是:在中断服务函数里面加上这句,
if(SysTick_Info.Operation != NULL) SysTick_Info.Operation();

建立一个结构体,里面包括一个函数。

typedef struct 
{ 
    void (*Operation)(void);  //中断中运行的函数
}_SysTick_Info;

_SysTick_Info SysTick_Info;

其中一些重要的名词:中断服务函数,中断回调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值