第一:点灯大师

在这里插入图片描述


环境: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那边的跳线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwAnPgoM-1676569525036)(C:/Users/LHF15/AppData/Roaming/Typora/typora-user-images/image-20230217012755302.png)]

在这里插入图片描述

④这个时候插上跳线,就可以运行了。看看LED是不是间隔闪烁

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值