STM32F10x LED和蜂鸣器控制代码示例
#include 'stm32f10x.h' #include 'led.h' #include 'beep.h' #include 'SysTick.h'
void delay(u32 ms) { while(ms--); }
int main() { LED_Init(); BEEP_Init(); SysTick_Init(72);
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_8);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
}
}
此代码是在STM32F10x开发板上使用的。在代码中,LED_Init()和BEEP_Init()函数用于初始化板上的LED和蜂鸣器。SysTick_Init(72)函数用于初始化 SysTick 定时器,使其按照1毫秒的间隔触发中断。
在主函数中,通过GPIO_SetBits()和GPIO_ResetBits()函数来控制GPIOB的Pin5和Pin8。在循环中,先设置Pin8为高电平,Pin5为低电平,然后延时5秒。接着,设置Pin5为高电平,Pin8为低电平,再延时5秒。然后循环执行这个过程。
由于循环中的延时函数是使用空循环实现的,因此该代码会占用大量的CPU时间,会导致其他代码无法执行。因此,建议使用定时器来实现延时操作,以减轻CPU负担。
原文地址: https://www.cveoy.top/t/topic/l0nA 著作权归作者所有。请勿转载和采集!