环境:keil5
板子:stm32f103c8t6最小系统板
烧录器:USB转TTL(驱动:CH340)
烧录软件:flymcu.exe
一、点亮LED灯
目标:实现LED灯的点亮,间隔一秒闪烁
引脚:
PC13,低电平点亮
步骤:
1、创建固件库
在工程项目下,引入固件库必要文件
2、创建文件
在工程目录下边创建led.c和led.h两个文件
3、编写代码
led.c:
#include "led.h"
#include "stm32f10x.h" //引入固件库头文件
void LED_Init(void)
{
GPIO_InitTypeDef led_init; //定义结构体
//使能时钟(GPIO的时钟配置都是用这个函数)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//配置结构体
led_init.GPIO_Pin = GPIO_Pin_13; //需要启用的引脚
led_init.GPIO_Speed = GPIO_Speed_10MHz; //频率
led_init.GPIO_Mode = GPIO_Mode_Out_PP; //输出模式为推挽输出
GPIO_Init(GPIOC,&led_init); //初始化
}
//每个文件最后边要空新行,不然警告
led.h:
void LED_Init(void); //声明led.c里面的函数
//留新行,不然警告
main.c:
#include "stm32f10x.h" //引入固件库
#include "main.h"
#include "led.h" //引入刚刚写的led文件
//延迟函数,单位ms(接近)
void delay(uint16_t time)
{
uint16_t i = 0;
while(time--)
{
i = 8000;
while(i--);
}
}
int main()
{
LED_Init(); //初始化(包括:使能时钟,配置结构体:需要启用的引脚,引脚模式,频率)
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13); //PC13输出低电平:点亮LED灯
delay(1000);
GPIO_SetBits(GPIOC,GPIO_Pin_13); //PC13输出高电平:熄灭LED灯
delay(1000);
}
}
4、编译烧录
①.烧录的时候需要拔出靠近boot0傍边的跳线(另一个不需要拔出),烧录完成后需要插上boot0靠近0那边的跳线
②
③
④这个时候插上跳线,就可以运行了。看看LED是不是间隔闪烁