STM32F103地狱加洛普代码
时间: 2024-10-10 13:01:18 浏览: 36
常用算法代码
STM32F103是一种基于ARM Cortex-M3内核的微控制器,它广泛应用于各种嵌入式系统。"地狱加洛普"通常是指一种简单的入门程序,用于验证STM32的硬件是否正常工作,特别是LED灯的操作。
下面是一个简单的STM32F103C8T6 "地狱加洛普"示例代码,这段代码会在三个LED上轮流闪烁:
```c
#include "stm32f10x.h"
// LED定义
#define LED_PIN PA0 // LED1
#define LED_PIN_2 PB0 // LED2
#define LED_PIN_3 PC0 // LED3
void delay_ms(uint16_t ms) {
for (uint16_t i = 0; i < ms * 10; i++);
}
int main(void) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOA, ENABLE); // 启动GPIO时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = LED_PIN | LED_PIN_2 | LED_PIN_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //浮空输入
GPIO_Init(LED_PORT, &GPIO_InitStructure); // 初始化LED端口
while (1) {
GPIO_SetBits(LED_PORT, LED_PIN); // 点亮LED1
delay_ms(500);
GPIO_ResetBits(LED_PORT, LED_PIN); // 熄灭LED1
GPIO_SetBits(LED_PORT, LED_PIN_2); // 点亮LED2
delay_ms(500);
GPIO_ResetBits(LED_PORT, LED_PIN_2);
GPIO_SetBits(LED_PORT, LED_PIN_3); // 点亮LED3
delay_ms(500);
GPIO_ResetBits(LED_PORT, LED_PIN_3);
}
}
```
阅读全文