gpio.h文件

#ifndef __GPIO_H__
#define __GPIO_H__//封装RCC寄存器
#define RCC (volatile unsigned int*)0x50000A28
//封装GPIO寄存器
typedef struct
{volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigned int OSPEEDR;volatile unsigned int PUPDR;volatile unsigned int IDR;volatile unsigned int ODR;
}gpio_t;
#define GPIOE10 ((gpio_t*)0x50006000)
#define GPIOF10 ((gpio_t*)0x50007000)
#define GPIOE8 ((gpio_t*)0x50006000)//LED1灯初始化
void LED1_init();
//LED2灯初始化
void LED2_init();
//LED3灯初始化
void LED3_init();//LED1灯点亮
void LED1_on();
//LED2灯点亮
void LED2_on();
//LED3灯点亮
void LED3_on();//LED1灯熄灭
void LED1_off();
//LED2灯熄灭
void LED2_off();
//LED3灯熄灭
void LED3_off();#endif

gpio.c

#include "gpio.h"
extern void printf(const char *fmt, ...);
unsigned int i = 0;//LED1灯初始化
void LED1_init()
{//GPIOE使能*RCC |= (0x1<<4);//GPIOE10引脚设置为输出模式GPIOE10->MODER &= (~(0x3<<20));GPIOE10->MODER |= (0x1<<20);//GPIOE10引脚设置为推挽输出模式GPIOE10->OTYPER &= (0x1<<10);//GPIOE10引脚设置为低速模式GPIOE10->OSPEEDR &= (~(0x3<<20));//GPIOE10引脚设置为禁止上下拉模式GPIOE10->PUPDR &= (~(0x3<<20));
}
//LED2灯初始化
void LED2_init()
{//GPIOE使能*RCC |= (0x1<<5);//GPIOF10引脚设置为输出模式GPIOF10->MODER &= (~(0x3<<20));GPIOF10->MODER |= (0x1<<20);//GPIOF10引脚设置为推挽输出模式GPIOF10->OTYPER &= (0x1<<10);//GPIOF10引脚设置为低速模式GPIOF10->OSPEEDR &= (~(0x3<<20));//GPIOF10引脚设置为禁止上下拉模式GPIOF10->PUPDR &= (~(0x3<<20));
}
//LED3灯初始化
void LED3_init()
{//GPIOE使能*RCC |= (0x1<<4);//GPIOF10引脚设置为输出模式GPIOE8->MODER &= (~(0x3<<16));GPIOE8->MODER |= (0x1<<16);//GPIOE8引脚设置为推挽输出模式GPIOE8->OTYPER &= (0x1<<8);//GPIOE8引脚设置为低速模式GPIOE8->OSPEEDR &= (~(0x3<<16));//GPIOE8引脚设置为禁止上下拉模式GPIOE8->PUPDR &= (~(0x3<<16));
}//LED1灯点亮
void LED1_on()
{GPIOE10->ODR |= (0x1<<10);
}
//LED2灯点亮
void LED2_on()
{GPIOF10->ODR |= (0x1<<10);
}
//LED3灯点亮
void LED3_on()
{GPIOE8->ODR |= (0x1<<8);
}//LED1灯熄灭
void LED1_off()
{GPIOE10->ODR &= (~(0x1<<10));
}
//LED2灯熄灭
void LED2_off()
{GPIOF10->ODR &= (~(0x1<<10));
}
//LED3灯熄灭
void LED3_off()
{GPIOE8->ODR &= (~(0x1<<8));
}

main.c

#include "gpio.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();LED2_init();LED3_init();while(1){LED1_on();delay_ms(1000);LED1_off();delay_ms(1000);LED2_on();delay_ms(1000);LED2_off();delay_ms(1000);LED3_on();delay_ms(1000);LED3_off();delay_ms(1000);}return 0;
}

测试结果:

使用C语言实现LED1/LED2/LED3灯点亮相关推荐

  1. 9.13 用C语言实现LED1/LED2/LED3灯点亮

    文章目录 用C语言实现LED1/LED2/LED3灯点亮 代码 gpio.h gpio.c main.c 实验现象 用C语言实现LED1/LED2/LED3灯点亮 代码 gpio.h #ifndef ...

  2. 用C语言实现LED1/LED2/LED3三盏灯点亮

    main代码如下: #include "./include/led.h" extern void printf(const char *fmt, ...); void delay_ ...

  3. c语言编程p0端口使灯一亮一灭,【单片机学习】第六课:单片机控制第一个外设-LED灯...

    [朱老师课程总结,侵删] 第一部分.章节目录 1.6.1.单片机编程的一般步骤 1.6.2.原理图与控制方法分析 1.6.3.第一个实验:点亮LED 1.6.4.如何让LED闪烁 1.6.5.C语言循 ...

  4. boa 传递 数据到 html,使用html网页boa这个web服务器通过cgi控制2410板子上LED灯点亮...

    1.使用boa服务,先交叉编译~/s3c2410/boa/boa-0.94.14rc21,编译器使用 CC = /usr/local/arm/3.4.1/bin/arm-linux-gcc,然后在sr ...

  5. CC2530入门篇————实现四盏灯全亮

    CC2530入门篇--实现四盏灯全亮 宏定义引脚 初始化引脚 亮灯 宏定义引脚 #include<iocc2530.h> //四个引脚分别对应板子上四个小灯 #define LED1 P1 ...

  6. 嵌入式Linux LED小灯点亮实验

    问:怎么写LED驱动程序? 1.搭建一个字符驱动的框架(上一节已经完成) 2.完善硬件的操作 问:驱动里操作硬件寄存器与单片机操作硬件寄存器有什么不一样的地方? 答:单片机操作的寄存器地址是物理地址, ...

  7. led的c语言程序,单片机C语言LED灯点亮程序完全版

    <单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...

  8. 51单片机c语言程序是一个灯亮灭,单片机实现8个灯每两个灯一亮在后面两个灯一亮直到最后8个灯全亮...

    单片机实现8个灯每两个灯一亮在后面两个灯一亮直到最后8个灯全亮 #include  //52单片机头文件 void main()     //主函数 {  unsigned int i; //定义一个 ...

  9. c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT

    <单片机控制LED灯点亮(C语言).PPT>由会员分享,可在线阅读,更多相关<单片机控制LED灯点亮(C语言).PPT(45页珍藏版)>请在人人文库网上搜索. 1.1,单片机控 ...

最新文章

  1. Memcached源码分析
  2. CodeForces - 1332D Walk on Matrix(构造)
  3. string所有函数详解——史上最全,最贴心
  4. SAP Spartacus能够使用的theme
  5. 【转】_declspec(naked) 使用
  6. 稍微成型点的用WEBSOCKET实现的实时日志LOG输出
  7. Shell——传递参数
  8. string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
  9. 入侵检测:User-Agent
  10. [android]system.img文件的打包和解包
  11. 正确的计算机锁屏方法快捷键,电脑锁屏快捷键?(电脑快速锁屏以及酷炫快速切换窗口的方法!)...
  12. 互联网公司平均薪资Top8 , 阿里勇夺第一。
  13. 将字符串中的小写字母转换成大写字母
  14. js逆向学习记录某真气网
  15. 微信8.0.18版来了
  16. ATI HD 4000/3000/2000 老显卡安装win8.1驱动
  17. 专业应用软件随身带,一招助您轻松搞定客户
  18. 如何将mac用到极致
  19. 国外优秀教材的英文pdf网站下载地址
  20. 店铺补单,补单技巧,补单流程及注意事项,降低被抓率

热门文章

  1. Cesium 风向图
  2. Windows查看文件占用情况、查看程序的dll依赖项
  3. 我与小娜(01):回到过去,探索未知
  4. 计算机一级office怎样练,2016计算机一级MSOffice练习(powerpoint)
  5. 杰理之AD15怎么动态设置睡眠唤醒参数?【篇】
  6. 小米应用商店上传apk报图片格式错误,小米手机调试 DELETE_FAILED_INTERNAL_ERROR错误
  7. 用HTML+CSS代码制作3D旋转相册
  8. photoshop支持的常用图片格式及其介绍
  9. CSDN-Adobe Flex/AIR专区——http://flex.csdn.net/ 很多资料
  10. 解决github下载慢的问题可以提速【1M/s】