采用STM32单片机设计电路,控制LED灯的亮灭,对单片机端口的位操作进行演示。
实验需要:
电路原理图
LED灯实际上是一个特殊的二极管,通过控制高低电平亮灭。如图所示,当1为低电平,2为高电平时才能亮灯,则低电平有效。
主函数代码:
int main(void)
{
delay_init(); //延时函数初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
LED0=0;
delay_ms(300); //延时300ms
LED0=1;
delay_ms(300); //延时300ms
}
}
实现效果
板载独立LED周期亮灭
采用STM32单片机设计电路,点亮第一个流水灯,对单片机端口的位操作进行演示;流水灯间隔点亮,对单片机端口操作进行演示。
实验需要:
电路原理图
可见其原理与LED实验基本一致,当单片机引脚为低电平时LED被点亮,高电平时LED灯熄灭。
主函数代码:
int main(void)
{
delay_init(); //延时函数初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
LED0=0;
LED1=1;
LED2=0;
LED3=1;
LED4=0;
LED5=1;
LED6=0;
LED7=1;
LED8=1; //高亮led
15
delay_ms(300); //延时300ms
LED0=1;
LED1=0;
LED2=1;
LED3=0;
LED4=1;
LED5=0;
LED6=1;
LED7=0;
LED8=0;
delay_ms(300); //延时300ms
}
}
从而控制灯间隔亮灭,实现流水灯效果,结果如下图所示。可以观察到LED灯交替闪烁。
采用STM32,对蜂鸣器进行控制,掌握蜂鸣器驱动原理;理解并掌握单个IO口的控制方法。
实验需要:
电路原理图
由图分析,蜂鸣器低电平有效。
主函数代码:
int main(void)
{
delay_init(); //延时函数初始化
BEEP_Init(); //初始化蜂鸣器端口
while(1)
{
BEEP=0;
delay_ms(300);//延时300ms
BEEP=1;
delay_ms(300);//延时300ms
}
}
实现效果:
可以听到蜂鸣器以一定频率发出响声。
以上都是一些基于STM32的简单实验,后面会进行更加深入的学习。