stm32f103跑马灯
时间: 2023-07-24 17:38:56 浏览: 49
好的,下面是一个简单的基于STM32F103的跑马灯程序,使用了GPIO口控制LED灯的亮灭。你可以根据自己的需求进行修改。
```c
#include "stm32f10x.h"
void Delay(__IO uint32_t nCount);
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 开启GPIOB时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* 配置GPIOB.5、6、7、8为推挽输出 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1)
{
/* 点亮LED1 */
GPIO_SetBits(GPIOB, GPIO_Pin_5);
Delay(0xFFFFF);
/* 点亮LED2 */
GPIO_SetBits(GPIOB, GPIO_Pin_6);
Delay(0xFFFFF);
/* 点亮LED3 */
GPIO_SetBits(GPIOB, GPIO_Pin_7);
Delay(0xFFFFF);
/* 点亮LED4 */
GPIO_SetBits(GPIOB, GPIO_Pin_8);
Delay(0xFFFFF);
/* 关闭所有LED */
GPIO_ResetBits(GPIOB, GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8);
Delay(0xFFFFF);
}
}
void Delay(__IO uint32_t nCount)
{
for (; nCount != 0; nCount--);
}
```
这个程序使用了GPIOB的5、6、7、8四个引脚控制四个LED灯的亮灭,每个LED灯依次亮起并延时一段时间后熄灭,然后所有LED灯同时熄灭一段时间后再次循环。