main.c
来自「STM8s」· C语言 代码 · 共 59 行
C
59 行
/* 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"
//延时一段时间
void xwDelay(void)
{
int i=2;
int j=200;
while(i--)while(j--);
}
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(DISABLE);
//反初始化时钟
CLK_DeInit();
//开启晶体振荡器
CLK_HSECmd(ENABLE);
while (1)
{
i++;
//间断使能蜂鸣器
BEEP_Cmd(i%2);
//间断亮LED
GPIO_WriteReverse(GPIOD, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
//软件延时一段时间
xwDelay();
//蜂鸣器响5次后切换系统时钟,切换后响闪频率会变高
if(i==10)
{
//启动切换,配置为自动切换模式
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?