stm32f103三色灯切换
时间: 2023-10-15 13:03:49 浏览: 117
stm32f103跑ucosii的红绿灯,支持sim800远程短信配置,OLED显示。工程包含完整的程序、原理图、PCB。
5星 · 资源好评率100%
可以使用以下代码实现stm32f103三色灯的切换:
```c
#include "stm32f10x.h"
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14; // 设置GPIOB的12、13、14引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 设置为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 设置输出速率为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化GPIOB
while (1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_12); // 点亮红色LED
GPIO_ResetBits(GPIOB, GPIO_Pin_13 | GPIO_Pin_14); // 熄灭绿色和蓝色LED
delay(1000); // 延时1秒
GPIO_SetBits(GPIOB, GPIO_Pin_13); // 点亮绿色LED
GPIO_ResetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_14); // 熄灭红色和蓝色LED
delay(1000); // 延时1秒
GPIO_SetBits(GPIOB, GPIO_Pin_14); // 点亮蓝色LED
GPIO_ResetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_13); // 熄灭红色和绿色LED
delay(1000); // 延时1秒
}
}
void delay(uint32_t time)
{
while (time--);
}
```
阅读全文