用C语言实现LED1/LED2/LED3三盏灯点亮
main代码如下:
#include "./include/led.h"
extern void printf(const char *fmt, ...);
void delay_ms(int ms)
{int i,j;for(i = 0; i < ms;i++)for (j = 0; j < 1800; j++);
}int main()
{led1_init();led3_init();led2_init();// LED灯初始化while(1){led1_on();delay_ms(500);led1_off();delay_ms(500);led2_on();delay_ms(500);led2_off();delay_ms(500);led3_on();delay_ms(500);led3_off();delay_ms(500);}return 0;
}
led.h代码如下:
#ifndef __LED_H__
#define __LED_H__#define GPIOE (*(volatile unsigned int*)0x50000A28)
#define GPIOE_MODER (*(volatile unsigned int*)0x50006000)
#define GPIOE_OTYPER (*(volatile unsigned int*)0x50006004)
#define GPIOE_OSPEEDR (*(volatile unsigned int*)0x50006008)
#define GPIOE_PUPDR (*(volatile unsigned int*)0x5000600C)
#define GPIOE_ODR (*(volatile unsigned int*)0x50006014)#define GPIOF (*(volatile unsigned int*)0x50000A28)
#define GPIOF_MODER (*(volatile unsigned int*)0x50007000)
#define GPIOF_OTYPER (*(volatile unsigned int*)0x50007004)
#define GPIOF_OSPEEDR (*(volatile unsigned int*)0x50007008)
#define GPIOF_PUPDR (*(volatile unsigned int*)0x5000700C)
#define GPIOF_ODR (*(volatile unsigned int*)0x50007014)void led1_init();
void led1_on();
void led1_off();void led2_init();
void led2_on();
void led2_off();void led3_init();
void led3_on();
void led3_off();#endif
led.c代码如下:
#include "../include/led.h"void led1_init()
{GPIOE |=(0x1<<4);GPIOE_MODER &=(~(0x3<<20));GPIOE_MODER |=(0x1<<20);GPIOE_OTYPER &=(~(0x1<<10));GPIOE_OSPEEDR&=(~(0x3<<20));GPIOE_PUPDR &=(~(0x3<<20));}void led1_on()
{GPIOE_ODR |=(0x1<<10);
}void led1_off()
{GPIOE_ODR &=(0x1<<10);
}void led2_init()
{GPIOF |=(0x1<<5);GPIOF_MODER &=(~(0x3<<20));GPIOF_MODER |=(0x1<<20);GPIOF_OTYPER &=(~(0x1<<10));GPIOF_OSPEEDR&=(~(0x3<<20));GPIOF_PUPDR &=(~(0x3<<20));
}
void led2_on()
{GPIOF_ODR |=(0x1<<10);
}
void led2_off()
{GPIOF_ODR &=(0x1<<10);
}
void led3_init()
{GPIOE |=(0x1<<4);GPIOE_MODER &=(~(0x3<<16));GPIOE_MODER |=(0x1<<16);GPIOE_OTYPER &=(~(0x1<<8));GPIOE_OSPEEDR&=(~(0x3<<16));GPIOE_PUPDR &=(~(0x3<<16));}
void led3_on()
{GPIOE_ODR |=(0x1<<8);}
void led3_off()
{GPIOE_ODR &=(0x1<<8);
}
结果如果所示:
用C语言实现LED1/LED2/LED3三盏灯点亮相关推荐
- 9.13 用C语言实现LED1/LED2/LED3灯点亮
文章目录 用C语言实现LED1/LED2/LED3灯点亮 代码 gpio.h gpio.c main.c 实验现象 用C语言实现LED1/LED2/LED3灯点亮 代码 gpio.h #ifndef ...
- 使用C语言实现LED1/LED2/LED3灯点亮
gpio.h文件 #ifndef __GPIO_H__ #define __GPIO_H__//封装RCC寄存器 #define RCC (volatile unsigned int*)0x50000 ...
- 三道经典的逻辑推理面试题:病狗、三盏灯、买鸡
[出处]http://blog.csdn.net/ekeuy/article/details/41042033 题目一: 村子里有50个人,每人有一条狗,在这50条狗中有病狗(这种病不传染),于是人们 ...
- 关于编程之美一个房间里面三盏灯的问题
这几天在看编程之美这本书.这里面提到了一个非常有意思的问题."房间里面有三盏灯,屋外有三个开关,分别控制三盏灯,只有进入房间,才能看到哪一个电灯是亮的,请问如何进入房间一次,就能指明哪一个开 ...
- 编程之美:三盏灯问题
房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个电灯是亮的.请问如何之进入房间一次,就能指明哪一个开关控制哪一个灯? 本人愚钝,实在想不出来.... 网上的解法: 因为灯 ...
- 面试经典--两个房间 每间房间三盏灯
问题:有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是 分割开的,从一间里不能看到另一间的情况. 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制 ...
- 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况。 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。
有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况. 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的. 有 ...
- 猿创征文|点亮技术之路的三盏灯
目录 前言 第一盏灯:学习&运气 第二盏灯:技术&信任 第三盏灯:思维&沟通 前言 也许,我是幸运的,可以说几乎每一次的技术储备,都能在关键时刻起到"救命稻草&quo ...
- [开心IT面试题] 封闭的房间中,如何判断三盏灯是由哪个开关控制?
题目: 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况. 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制 ...
最新文章
- tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
- 经典数据结构——堆的实现
- scannet数据集和shapenet、modelnet等数据集的名称和标签对应关系
- CSS边距---盒子模型
- 手把手教你用Python创建SQL数据库~
- 115、神州数码交换机配置基本命令
- 插入报错 Could not set property ‘id‘ of ‘class com.chen.flowerdemo.entity.Flower‘ with value
- NCA:九岁已经发起了 DDoS 攻击
- java驱动打印机,r230打印机驱动-r230打印机驱动 免费版
- viewBag和viewData区别
- linux下git和github搭建使用教程
- 教学|3DsMAX怎么样制作环境贴图,3D建模步骤教程
- 成为职业游戏建模师有没有前景,未来自己该如何发展学习
- MATLAB 判断字符串中是否含有特定的字符
- Linux 知:find
- ShareSDK 常见问题
- Qt学习总结之QFileDialog
- 2023年美赛ICM问题E:光污染 这题很好做啊!
- py android 知乎,python知乎爬虫(最新)
- 微信小程序 连接云数据库(不使用云函数)进行 登录、注册、查询(包括模糊查询)快速实现 亲测可用