用STM32F103C8T6写个LED程序
时间: 2024-03-22 08:38:40 浏览: 18
好的,以下是一个简单的用STM32F103C8T6控制LED的程序:
```c
#include "stm32f10x.h"
void delay_ms(uint32_t ms);
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1)
{
GPIO_SetBits(GPIOC, GPIO_Pin_13);
delay_ms(500);
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
delay_ms(500);
}
}
void delay_ms(uint32_t ms)
{
volatile uint32_t nCount;
RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq(&RCC_Clocks);
nCount = (RCC_Clocks.HCLK_Frequency / 10000) * ms;
for (; nCount != 0; nCount--);
}
```
这个程序中,我们使用GPIO C13输出控制LED的亮灭。首先,我们需要初始化GPIO C13的输出模式,设置Pin为推挽输出,最大速度为50MHz。然后,我们在一个死循环中,不停地切换GPIO C13的输出状态,实现LED的闪烁。为了控制LED亮灭的时间,我们还编写了一个简单的延时函数。