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

📄 main.c

📁 STM8s
💻 C
字号:
/* MAIN.C file
 * Copyright (c) 轩微科技
 本程序功能为让轩微科技STM8S105S4开发板板载外部16MHz晶振与内部2M时钟间在运行时动态切换.切换后LED与蜂鸣器闪频和响频会改变8倍
 本程序使用ST官方库进行操作.
 轩微科技保留所有权利.
 */

#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_beep.h"
#include "stm8s_clk.h"
#include "stm8s_time2.h"

//延时一段时间
void xwDelay(void)
{
	int i=2;
	int j=200;
	while(i--)while(j--);
}
@far @interrupt void Time2YiChu (void)
{
	
}

main()
{
	unsigned long i=0;
	//反初始化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);
	//反初始化BEEP
	BEEP_DeInit();
	//初始化BEEP
	BEEP_Init(BEEP_FREQUENCY_1KHZ);
	//配置蜂鸣器振时钟
	BEEP_LSICalibrationConfig(2000000);
	//开始响
	BEEP_Cmd(ENABLE);
	//反初始化时钟
	CLK_DeInit();
	//开启晶体振荡器
	CLK_HSECmd(ENABLE);
		CLK_HSICmd(ENABLE);
		CLK_LSICmd(ENABLE);
		
		
		/*
	while (1)
	{
		i++;
		//间断使能蜂鸣器
		BEEP_Cmd(i%2);
		//间断亮LED
		
		GPIO_WriteReverse(GPIOD, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);  //qu
		//GPIO_Write(GPIOD, GPIO_PIN_2|GPIO_PIN_3);
		//软件延时一段时间
		xwDelay();
		//蜂鸣器响5次后切换系统时钟,切换后响闪频率会变高
		if(i==10)
		{			
			//启动切换,配置为自动切换模式
			//CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,ENABLE ,CLK_CURRENTCLOCKSTATE_DISABLE);
			CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE ,CLK_CURRENTCLOCKSTATE_ENABLE);
		}
		*/
	//	GPIO_Write(GPIOD, GPIO_PIN_2|GPIO_PIN_3);
		while(1)
	{
		i++;
		//间断使能蜂鸣器
		BEEP_Cmd(i%2);
		//间断亮LED
		if(i%3==0)
	    {
		      GPIO_WriteLow(GPIOD, GPIO_PIN_0);
		      GPIO_WriteHigh(GPIOD, GPIO_PIN_2|GPIO_PIN_3);
		
	    }
			
  	else if(i%3==1)
			{
	    GPIO_WriteLow(GPIOD, GPIO_PIN_2);
		   GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_3);
			}
       else if(i%3==2)
      {
	     GPIO_WriteLow(GPIOD, GPIO_PIN_3);
		   GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_2);
			}
	
	
		//软件延时一段时间
		xwDelay();
		//蜂鸣器响5次后切换系统时钟,切换后响闪频率会变高
	}
		
		
		
		
		
	}

⌨️ 快捷键说明

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