⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 STM8s
💻 C
字号:
/* MAIN.C file
 * Copyright (c) 轩微科技
 本程序功能为让轩微科技STM8S105S4开发板板载LED在定时器2的驱动下每一秒内亮半秒灭半秒.
 本程序使用ST官方库进行操作.
 轩微科技保留所有权利.
 */

#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_beep.h"
#include "stm8s_tim2.h"

//10毫秒计数器
unsigned long _10ms=0;

//定时器2更新中断服务程序
@far @interrupt void TIM2_UPD_IRQHandler (void)
{
	ITStatus ins=RESET;	
	//采集中断标志
	ins=TIM2_GetITStatus(TIM2_IT_UPDATE);
	_10ms++;
	//清中断标志
	TIM2_ClearFlag(TIM2_IT_UPDATE);
	//判定是否已过半秒且为更新中断
	if(ins==SET&&(_10ms%50==0))
	{		
		//翻转LED
		GPIO_WriteReverse(GPIOD, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
	}
}

main()
{
	//反初始化GPIOD 
	GPIO_DeInit(GPIOD);
	//实始化GPIOD,配置其第0,2,3位为推挽输出,高电平.
	GPIO_Init(GPIOD, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST);
	//定时器2反初始化
	TIM2_DeInit();	
	//定时器2初始化,每10个毫秒中断一次
	TIM2_TimeBaseInit(0, 20000);
	//使能定时器2更新中断
	TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
	//启动定时器2
	TIM2_Cmd(ENABLE);
	// 允许CPU全局中断
	enableInterrupts();            
	while (1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -