STM32F103是STM32系列中非常经典的一款。LED闪烁实验主要目的是让初学者熟悉单片机的基本开发流程和编程方法。
原理:
LED灯本身是一种发光二极管,可以发出不同颜色的光。它具有极性,正极连接电源,负极接地时可以发光。我们通过stm32的GPIO口输出高低电平来控制LED的亮灭。
stm32的GPIO可配置为推挽输出。当输出高电平(1)时,端口输出与电源电压相同的电平,此时LED灯导通发光。当输出低电平(0)时,端口输出接地,LED灯截止熄灭。
通过循环改变GPIO的输出电平,我们可以反复让LED灯在点亮和熄灭之间切换,由于人眼的视觉残留效应,会产生视觉上的闪烁效果。为了避免LED频繁点亮熄灭对硬件的影响,我们在改变GPIO输出状态之间添加一定的延时,这样可以很容易地用代码方式实现LED的闪烁,这是stm32控制外设的一个典型案例。
实验主要步骤:
硬件电路连接
使用面包板进行接线,将LED灯、限流电阻连接到STM32F103开发板的GPIO口(以PB1作为实例),再连接好电源。这个电路非常简单,主要起到演示和验证的作用。
软件设计
我们可以使用基于Eclipse的STM32CubeIDE进行开发。首先需要配置工程选项,包括目标MCU型号STM32F103、时钟设置等参数。然后编写主函数,实现LED闪烁控制逻辑。
/* 定义LED连接的GPIO端口和引脚 */
#define LED_PIN GPIO_Pin_1
#define LED_PORT GPIOB
int main(void)
{
/