当前位置: 首页 > news >正文

1,用寄存器操作闪烁led灯

1,找到IO,确定模式:PE2 推挽.

根据原理图看出led1灯IO引脚为PE2

2,看芯片相关资料/数据手册--中文,发现控制PE2的为APB2

3,打开时钟.看文件:芯片相关资料/参考手册--中文

提供时钟:RCC APB2 外设时钟使能寄存器

控制接口PE的为第6位,开时钟,将第6位置为1

RCC->APB2ENR |=(0x1<<6); //开时钟,将第6位置为1

4,初始化IO口PE2,看手册:芯片相关资料/参考手册--中文.

端口PE2配置位(y = 2),对应看8-11位,根据模式配置为(0011)

端口0-7在低位CRL,端口8-15在高位CRH,

代码: 

GPIOE->CRL &= ~(0x0f<<8);
GPIOE->CRL |= (0x03<<8);

 5,操作端口输出数据寄存器:控制外部输出的高低电平

端口PE2输出数据(y = 2),

void Led_Open(void)
{GPIOE->ODR &=~(0x1<<2);//置0
}void Led_Off()
{GPIOE->ODR |=(0x1<<2);//置1
}

6,主函数调用

int main(void)
{Led_Init();Led_Open();Delay_nms(2000);Led_Off();while(1){}
}

综上所述:led.c中代码

#include "led.h"void Led_Init(void)
{//打开E的时钟RCC->APB2ENR |=(0x1<<6);//PE2GPIOE->CRL &= ~(0x0f<<8);GPIOE->CRL |= (0x03<<8);}void Led_Open(void)
{GPIOE->ODR &=~(0x1<<2);//置0
}void Led_Off()
{GPIOE->ODR |=(0x1<<2);//置1
}
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "key.h"int main(void)
{Led_Init();Led_Open();Delay_nms(2000);Led_Off();Key_Init();while(1){}}

相关文章:

  • VMware创建虚拟机
  • 滑不动窗口的秘密—— “滑动窗口“算法 (Java版)
  • npm详解
  • Pytorch线性模型(Linear Model)
  • 引流500+创业粉,抖音口播工具
  • three.js判断物体在人的前面,还是后面
  • Parquet文件格式详解(含行、列式存储区别)
  • react通过上下文深入传递数据
  • 嵌入式进阶——LED呼吸灯(PWM)
  • 封装 UpdateManager 实现启动微信小程序时自动强制更新
  • Python | 一文搞定列表推导式
  • 微信小程序源码-基于Java后端的小区租拼车管理信息系统毕业设计(附源码+演示录像+LW)
  • web学习笔记(五十六)
  • windows 7 10 11快捷键到启动页面
  • 对systemverilog/verilog中forever语法的理解
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Laravel 菜鸟晋级之路
  • Linux链接文件
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP的Ev教程三(Periodic watcher)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Vue全家桶实现一个Web App
  • 从setTimeout-setInterval看JS线程
  • 解决iview多表头动态更改列元素发生的错误
  • 前嗅ForeSpider教程:创建模板
  • 如何设计一个微型分布式架构?
  • 时间复杂度与空间复杂度分析
  • 实现简单的正则表达式引擎
  • 项目管理碎碎念系列之一:干系人管理
  • 怎么将电脑中的声音录制成WAV格式
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 数据可视化之下发图实践
  • ​MySQL主从复制一致性检测
  • ​数据结构之初始二叉树(3)
  • !$boo在php中什么意思,php前戏
  • ### RabbitMQ五种工作模式:
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #ifdef 的技巧用法
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (70min)字节暑假实习二面(已挂)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (不用互三)AI绘画工具应该如何选择
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (十二)Flink Table API
  • (实战篇)如何缓存数据
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ****Linux下Mysql的安装和配置
  • ./和../以及/和~之间的区别
  • .chm格式文件如何阅读