gpio.h

#ifndef __GPIO_H__
#define __GPIO_H__//1.RCC寄存器封装,用宏定义封装
#define RCC_AHB4_ENSETR (*(volatile unsigned int*)0x50000A28)//2.GPIO寄存器封装,用结构体封装
typedef struct{volatile unsigned int MODER; //00volatile unsigned int OTYPER; //04volatile unsigned int OSPEEDR; //08volatile unsigned int PUPDR; //0Cvolatile unsigned int IDR;  //10volatile unsigned int ODR; //14
}gpio_t;
#define GPIOE ((gpio_t*)0x50006000)
#define GPIOF ((gpio_t*)0x50007000)//3.LED1初始化
void LED1_init();//4.LED1点亮
void LED1_on();//LED1熄灭
void LED1_off();//3.LED2初始化
void LED2_init();//4.LED2点亮
void LED2_on();//LED2熄灭
void LED2_off();//3.LED3初始化
void LED3_init();//4.LED3点亮
void LED3_on();//LED3熄灭
void LED3_off();#endif

gpio.c

#include"gpio.h"
void LED1_init()
{RCC_AHB4_ENSETR |=(0x1<< 4);//1.设置PE10引脚为输出模式GPIOE->MODER &= (~(0x3<< 20));    //清零GPIOE->MODER |= (0x1<< 20);//2.设置PE10引脚为推挽输出GPIOE->OTYPER &= (~(0x1<< 10));//3.设置PE10引脚为低速模式GPIOE->OSPEEDR &= (~(0x3<< 20));//4.设置PE10引脚禁止上下拉GPIOE->PUPDR &= (~(0x3<< 20));}
//4.LED1点亮
void LED1_on()
{GPIOE->ODR |= (0x1<< 10);
}
//LED1熄灭
void LED1_off()
{GPIOE->ODR &= (~(0x1<< 10));
}void LED2_init()
{RCC_AHB4_ENSETR |=(0x1<< 5);//1.设置PF10引脚为输出模式GPIOF->MODER &= (~(0x3<< 20));    //清零GPIOF->MODER |= (0x1<< 20);//2.设置PF10引脚为推挽输出GPIOF->OTYPER &= (~(0x1<< 10));//3.设置PF10引脚为低速模式GPIOF ->OSPEEDR &= (~(0x3<< 20));//4.设置PF10引脚禁止上下拉GPIOF->PUPDR &= (~(0x3<< 20));}//4.LED2点亮
void LED2_on()
{GPIOF->ODR |= (0x1<< 10);
}//LED2熄灭
void LED2_off()
{GPIOF->ODR &= (~(0x1<< 10));
}void LED3_init()
{RCC_AHB4_ENSETR |=(0x1<< 4);//1.设置PE10引脚为输出模式GPIOE->MODER &= (~(0x3<< 16));    //清零GPIOE->MODER |= (0x1<< 16);//2.设置PE10引脚为推挽输出GPIOE->OTYPER &= (~(0x1<< 8));//3.设置PE10引脚为低速模式GPIOE->OSPEEDR &= (~(0x3<< 16));//4.设置PE10引脚禁止上下拉GPIOE->PUPDR &= (~(0x3<< 16));}//4.LED3点亮
void LED3_on()
{GPIOE->ODR |= (0x1<< 8);
}//LED3熄灭
void LED3_off()
{GPIOE->ODR &= (~(0x1<< 8));
}

main.c

#include "./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(); // LED灯初始化LED2_init(); // LED灯初始化LED3_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;}

09.13 LED点灯相关推荐

  1. 实习日志 (2021.09.13)

    2021.09.13星期一 今天把之前的算法题终于给弄明白了,并能够按照自己的思路去把他给完成,总结这个题目并不是很难,最重要的是要把链表给弄懂,一开始由于我对链表不是很熟悉,导致我在写该题目的时候花 ...

  2. STM32F4的LED点灯

    文章目录 前言 一.使用到的运算符 二.寄存器相关 1.寄存器地址 2.寄存器定义过程 三.GPIO端口位相关 四.GPIO端口的输出功能的配置步骤及其涉及到的寄存器 五.点灯 前言 单片机开发第一站 ...

  3. Xilinx ISE系列教程(2):LED点灯工程、仿真、bit下载和mcs固化

    文章目录 @[toc] 1. 创建工程目录 2. 新建ISE工程 3. 新建verilog源文件 4. 新建testbench仿真文件 5. ISim功能仿真 6. 管脚分配和时钟约束 7. bit文 ...

  4. 昨夜无眠 转自科学网程代展博文] (2012-11-13 21:09:13)

    昨夜无眠[转自科学网程代展博文] (2012-11-13 21:09:13) 标签: 杂谈 昨夜无眠,为了一个学生.     五年前,他在清华大学数学系四年级.他可以保送直接攻读博士学位,参加了我们所 ...

  5. 嵌入式固件开发之二——直接操作STM32寄存器的LED点灯测试程序和仿真

    2 直接操作STM32寄存器的LED点灯测试程序 2.1 创建并编译工程 双击桌面上的"Keil uVision5"图标,启动MDK. 点击"Project"- ...

  6. ATmega16开发板教程(1)——LED点灯

    ​2.LED点灯 作为通用数字IO使用时,AVR单片机的IO具备读.写.修改功能.每个端口具有3个寄存器:DDRx.PORTx.PINx. DDRx:1-输出,0-输入.当配置为输入时,PORTx=1 ...

  7. 史上最全的LED点灯程序,你都掌握了吗?

    摘要:你点亮过多少板子的LED灯呢?有很多小伙伴留言说讲一下STM32.FPGA.Liunx他们之间有什么不同.不同点很多,口说无凭,今天就来点亮一下STM32.FPGA和Liunx板子的LED灯,大 ...

  8. i.MX6ULL(一) HelloWorld Led点灯

    一 GPIO点灯,嵌入式的helloworld 1   何为GPIO? GPIO只是一个CPU内提供的一种功能外设,CPU外部的I/O引脚会被赋予一种功能(GPIO.UART.I2C等):该功能由CP ...

  9. 51单片机LED点灯实验(闪烁,点亮,流水灯)

    led点亮 工作原理 如图,二极管阳极连接电阻,二极管阴极连接单片机引脚.D0对应P20,D1对应P21,,,,,,,都通过P2孔进行控制. 二极管: 电源正极连接到二极管阳极,负极连接到阴极,二极管 ...

最新文章

  1. 操作系统内存管理、Cache调度策略学习
  2. node.js调用外部接口
  3. bim webgl 模型 轻量化_葛兰岱尔WebGL轻量化GIS+BIM融合引擎 大体量BIM模型LOD技术说明...
  4. 软件实施工程师的经验之谈(适合新手,老鸟请指正)
  5. linux sz命令 二进制,ubuntu下rz/sz命令的安装与使用说明
  6. 文字识别总结(OCR)
  7. c语言四则运算去括号,四年级四则运算交换律、结合律、分配律及去括号公式汇总,附例子!...
  8. 学信网忘记原手机号码的解决办法
  9. 用GNS3制作路由交换网络拓扑图
  10. 未认证公众号如何跳转其他链接
  11. 使用Jwt验证登录demo
  12. 多线程(二)互斥锁详解
  13. 30岁的女程序员该何去何从
  14. Machine Reading Comprehension: The Role of Contextualized Language Models and Beyond
  15. openGL环境贴图
  16. 智慧医院的内容记录--基于银江股份的架构
  17. C#窗体程序实现全屏及取消全屏步骤
  18. minidump详细介绍及其windbg的使用
  19. ESP8266系列WIFI模块的使用·
  20. 电能质量分析仪的功能和工作原理

热门文章

  1. 小程序接入信用能力,微信花呗来了
  2. Json转换利器Gson之实例四-Map处理(下)
  3. 笔记本电脑桌面计算机打不开怎么回事啊,笔记本电脑的声音打不开怎么办
  4. linux中DNS服务器查看域名,如何在Linux中查看DNS服务器设置
  5. 芹菜炒肉怎么做(保姆级教程 爸妈吃了都说好)
  6. 为什么很多人炒芹菜都要把叶子摘掉
  7. python可编程手表_401. 二进制手表(Python)
  8. 使用 DML语句,对 “锦图网” 数据进行操作,聚合函数练习
  9. success: function ()和success: res=> ()有什么区别
  10. 核弹剑仙 (拓扑排序+bitset或最短路)