KEIL 5 的点灯

news/2024/10/17 22:13:24/

1本节从调用固件库来点亮LED灯;使用的是指南者的板子,选择的KEIL5编辑,

一,构建文件库并将相应的文件导入;

   创建文件,加入相应的文件库 工程创建完毕,这里不会可以在网上下载一个工程,把需要的复制过来再导入就可以了!

二,逻辑

  导入相关文件后开始书写,确保.h的文件导入

1,为了文件的调用重复采用,采用条件编译

#ifndef _BSP_LED_H
#define _BSP_LED_H#endif

2.操作LED灯,操作其GPIO    LED_GRIO_Config()初始化

  添加要控制的参数,引脚(Pin),模式,速度;

  做好在头文件里面的宏定义;  

  调用一个初始化函数,将三个值写道CRL寄存器里面;

3,打开时钟,时钟是我们的心脏

可以看到这里的时钟RCC在APB2 上面是由端口的 GPIOB,所以操作GPIOB及”使能“

4,初始化函数,操作ODR,查找GPIO.C文件调用SetBits和ResetBits控制灯光的关灭;

5,采用了一个延世函数,让灯光闪烁,亮起来不枯燥!

三,实际代码

1,bsp_led.c文件,相关的GPIO函数,都是在固件库里面查找使用的!

//bsp:board suport package 板机支持包
#include "bsp_led.h"  void LED_GPIO_Config(void)//初始化GPIO
{GPIO_InitTypeDef GPIO_InitStruct;//初始化结构体//开时钟 RCCRCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);//ENABLE 使能GPIO_InitStruct.GPIO_Pin= LED_G_GPIO_PIN ;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽输出GPIO_InitStruct.GPIO_Speed= GPIO_Speed_50MHz;//速度 50MHZGPIO_Init(LED_G_GPIO_PORT,&GPIO_InitStruct);//初始化 端口  初始化的结构体(变量指针取地址)}

 2,bes_led.h文件

 

#ifndef _BSP_LED_H
#define _BSP_LED_H#include "stm32f10x.h"#define LED_G_GPIO_PIN     GPIO_Pin_0   //GREEN 灯
#define LED_G_GPIO_PORT    GPIOB        //端口
#define LED_G_GPIO_CLK              RCC_APB2Periph_GPIOB#define ON    1
#define OFF   0#define LED_G(a)    if(a)\GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN );\
else GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN );void LED_GPIO_Config(void);#endif /*_BSP_LED_H*/

3.main.c文件

#include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>#include"bsp_led.h"void Delay(uint32_t count)
{for(;count!=0;count--);
}
int main(void)
{// 来到这里的时候,系统的时钟已经被配置成72M。LED_GPIO_Config();while(1){//GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN );//灭LED_G(OFF);  //带参宏Delay(0xFFFFF);//GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN );//亮LED_G(ON);Delay(0xFFFFF);}
}

运行成功!!

附加:流水灯

1.流水灯就是使灯在灯闪烁时,亮起来不同的颜色,三基色RGB,这里只需要定义另外两个灯的引脚和条件,依次亮起来就可以了,也可以使同一时间,两个或者三个都打开,产生更多的颜色,增加趣味性!


http://www.ppmy.cn/news/589305.html

相关文章

Redmi K50电竞版 评测

K50 电竞版搭载全新一代骁龙8 旗舰处理器&#xff0c;突破性采用热源分离布局和双区温控&#xff0c;结合双 VC、超大面积石墨等一系列豪华散热材料&#xff0c;造就最冷静骁龙8 旗舰。还延续了磁动力肩键设计&#xff0c;并全新升级 JBL 宽频四单元扬声器、最新一代 CyberEngi…

杭州最新公交线路一览(51-60)

K55武林小广场&#xff0d;武林小广场 上行站点&#xff1a;武林小广场、杭州大厦、中山北路口、艮山门、公交总公司、闸弄口新村、汽车东站、严家弄、景芳 五区、景芳二区、景芳亭、红菱新村、采荷新村、解放路秋涛路口、新城隧道东口、葵巷、浙二医院、官巷口、湖滨、胜利剧院…

什么是docker

1.什么是docker Docker 是一个开源的应用容器引擎&#xff0c;是虚拟化的一种轻量级替代技术。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制…

使用K55实现Linux x86_64进程注入

关于K55 K55是一款 Payload注入工具&#xff0c;该工具可以向正在运行的进程注入x86_64 shellcode Payload。该工具使用现代C11技术开发&#xff0c;并且继承了某些传统的C Linux函数&#xff0c;比如说ptrace()等等。在目标进程中生成的shellcode长度为27个字节&#xff0c;并…

PTA——L1-016 查验身份证(C语言)

你们的点赞收藏关注&#xff0c;是我唯一的创作动力&#xff01; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#…

十大公认音质好的骨传导耳机,几款音质排行靠前的骨传导耳机

骨传导耳机是通过头部骨迷路传递声音&#xff0c;而不是直接通过耳膜的振动来传递声音。与传统的入耳式耳机相比&#xff0c;骨传导耳机不会堵耳朵&#xff0c;在跑步、骑车等运动时可以更好的接收外界环境音&#xff0c;保护听力&#xff0c;提升安全性。此外&#xff0c;骨传…

Speedoffice(ppt)中如何插入表格

1&#xff0c;打开PPT后&#xff0c;鼠标选择表格要插入的位置。 ​2&#xff0c;左键单击PPT上方工具栏中的【插入】选项--插入表格。如图所示 ​3&#xff0c;有2种方式可以选择&#xff0c;可以直接选择自带的表格&#xff0c;也可以自定义表格行列&#xff0c;根据自己需求…

win7升级win10时报0x80072F8F - 0x20000错误处理

把放了几年的itx主板zotec fusion e350找出来&#xff0c;准备做个下载机&#xff0c;上电开机没问题&#xff0c;进bios发现时间都重置了&#xff0c;多半是电池没电了。装机还是老套路&#xff0c;先装win7再升级win10&#xff0c;装win7挺顺利&#xff0c;运行win10升级程序…