STM32F103VBT6 流水灯keil5\
时间: 2023-10-25 22:09:40 浏览: 145
好的,针对您的问题,我可以给出以下步骤:
1. 首先需要在Keil5中创建一个新的工程,并选择STM32F103VBT6作为目标芯片。
2. 在工程中添加一个.c文件,并编写流水灯的代码。
3. 在编写代码之前,需要先配置好芯片的时钟和GPIO口。
4. 编写流水灯的代码,可以使用循环和延时函数来实现。
以下是一个简单的流水灯代码示例:
```
#include "stm32f10x.h"
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置PB0~PB7为推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1)
{
// 点亮PB0
GPIO_SetBits(GPIOB, GPIO_Pin_0);
// 延时
Delay(1000000);
// 熄灭PB0,点亮PB1
GPIO_ResetBits(GPIOB, GPIO_Pin_0);
GPIO_SetBits(GPIOB, GPIO_Pin_1);
Delay(1000000);
// 熄灭PB1,点亮PB2
GPIO_ResetBits(GPIOB, GPIO_Pin_1);
GPIO_SetBits(GPIOB, GPIO_Pin_2);
Delay(1000000);
// 熄灭PB2,点亮PB3
GPIO_ResetBits(GPIOB, GPIO_Pin_2);
GPIO_SetBits(GPIOB, GPIO_Pin_3);
Delay(1000000);
// 熄灭PB3,点亮PB4
GPIO_ResetBits(GPIOB, GPIO_Pin_3);
GPIO_SetBits(GPIOB, GPIO_Pin_4);
Delay(1000000);
// 熄灭PB4,点亮PB5
GPIO_ResetBits(GPIOB, GPIO_Pin_4);
GPIO_SetBits(GPIOB, GPIO_Pin_5);
Delay(1000000);
// 熄灭PB5,点亮PB6
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
GPIO_SetBits(GPIOB, GPIO_Pin_6);
Delay(1000000);
// 熄灭PB6,点亮PB7
GPIO_ResetBits(GPIOB, GPIO_Pin_6);
GPIO_SetBits(GPIOB, GPIO_Pin_7);
Delay(1000000);
// 熄灭PB7
GPIO_ResetBits(GPIOB, GPIO_Pin_7);
}
}
void Delay(__IO uint32_t nCount)
{
for (; nCount != 0; nCount--);
}
```
阅读全文