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

day5ARM

 循环点亮三个led灯

方法1

------------------led.h----------------
#ifndef __LED_H__
#define __LED_H__#define RCC (*(volatile unsigned int *)0x50000A28)
#define GPIOE ((GPIO_t *)0x50006000)
#define GPIOF ((GPIO_t *)0x50007000)//结构体封装
typedef struct
{volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigned int OSPEED;volatile unsigned int PUPDR;volatile unsigned int IDR;volatile unsigned int ODR;
}GPIO_t;//RCC章节初始化
void RCC_INIT();
//LED1 ----> PE10
//LED1 - GPIO章节初始化
void LED1_GPIO_INIT();
//LED1点亮
void LED1_ON();
//LED1熄灭
void LED1_OFF();//LED2 ----> PF10
//LED2 - GPIO章节初始化
void LED2_GPIO_INIT();
//LED2点亮
void LED2_ON();
//LED2熄灭
void LED2_OFF();//LED3 ----> PF10
//LED3 - GPIO章节初始化
void LED3_GPIO_INIT();
//LED3点亮
void LED3_ON();
//LED3熄灭
void LED3_OFF();#endif------------------led.c----------------
#include "led.h"//LED1 ---> PE10
//RCC章节初始化
void RCC_INIT()
{RCC = RCC | (0x3 << 4);
}
//LED1 - GPIO章节初始化
void LED1_GPIO_INIT()
{//设置为输出模式 0x50006000[21,20] -> 01GPIOE->MODER &= (~(0x3 << 20));GPIOE->MODER |= (0x1 << 20);//设置为推挽输出 0x50006004[10] -> 0GPIOE->OTYPER &= (~(0x1 << 10));//设置为低速模式 0x50006008[21,20] -> 00GPIOE->OSPEED &= (~(0x3 << 20));//设置为禁止上下拉电阻 0x5000600c[21,20] -> 00GPIOE->PUPDR &= (~(0x3 << 20));
}
//LED1点亮
void LED1_ON()
{//点亮LED1 0x50006014[10] -> 1GPIOE->ODR |= (0x1 << 10);
}
//LED1熄灭
void LED1_OFF()
{//熄灭LED1 0x50006014[10] -> 0GPIOE->ODR &= (~(0x1 << 10));
}//LED2 ----> PF10
//LED2 - GPIO章节初始化
void LED2_GPIO_INIT()
{//设置为输出模式 0x50007000[21,20] -> 01GPIOF->MODER &= (~(0x3 << 20));GPIOF->MODER |= (0x1 << 20);//设置为推挽输出 0x50007004[10] -> 0GPIOF->OTYPER &= (~(0x1 << 10));//设置为低速模式 0x50007008[21,20] -> 00GPIOF->OSPEED &= (~(0x3 << 20));//设置为禁止上下拉电阻 0x5000700c[21,20] -> 00GPIOF->PUPDR &= (~(0x3 << 20));}
//LED2点亮
void LED2_ON()
{//点亮LED2 0x50007014[10] -> 1GPIOF->ODR |= (0x1 << 10);
}//LED2熄灭
void LED2_OFF()
{//熄灭LED2 0x50007014[10] -> 0GPIOF->ODR &= (~(0x1 << 10));
}//LED3 ----> PF10
//LED3 - GPIO章节初始化
void LED3_GPIO_INIT()
{//设置为输出模式 0x50006000[17,16] -> 01GPIOE->MODER &= (~(0x3 << 16));GPIOE->MODER |= (0x1 << 16);//设置为推挽输出 0x50006004[8] -> 0GPIOE->OTYPER &= (~(0x1 << 8));//设置为低速模式 0x50006008[17,16] -> 00GPIOE->OSPEED &= (~(0x3 << 16));//设置为禁止上下拉电阻 0x5000600c[17,16] -> 00GPIOE->PUPDR &= (~(0x3 << 16));
}//LED3点亮
void LED3_ON()
{//点亮LED3 0x50006014[8] -> 1GPIOE->ODR |= (0x1 << 8);
}
//LED3熄灭
void LED3_OFF()
{//熄灭LED3 0x50006014[8] -> 0GPIOE->ODR &= (~(0x1 << 8));
}-----------------main.c----------------
#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()
{// LED灯初始化RCC_INIT();LED1_GPIO_INIT();LED2_GPIO_INIT();LED3_GPIO_INIT();while(1){//点亮LED1LED1_ON();delay_ms(500);//熄灭LED1LED1_OFF();//点亮LED2LED2_ON();delay_ms(500);//熄灭LED2LED2_OFF();//点亮LED3LED3_ON();delay_ms(500);//熄灭LED3LED3_OFF();}return 0;
}

方法2

相关文章:

day5ARM

循环点亮三个led灯 方法1 ------------------led.h---------------- #ifndef __LED_H__ #define __LED_H__#define RCC (*(volatile unsigned int *)0x50000A28) #define GPIOE ((GPIO_t *)0x50006000) #define GPIOF ((GPIO_t *)0x50007000)//结构体封装 typedef struct {vo…...

旋转链表-双指针思想-LeetCode61

题目要求&#xff1a;给定链表的头结点&#xff0c;旋转链表&#xff0c;将链表每个节点向右移动K个位置。 示例&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k2 输出&#xff1a;[4,5,1,2,3] 双指针思想&#xff1a; 先用双指针策略找到倒数K的位置&#xff0c;也就是(…...

使用自定义XML配置文件在.NET桌面程序中保存设置

本文将详细介绍如何在.NET桌面程序中使用自定义的XML配置文件来保存和读取设置。除了XML之外&#xff0c;我们还将探讨其他常见的配置文件格式&#xff0c;如JSON、INI和YAML&#xff0c;以及它们的优缺点和相关的NuGet类库。最后&#xff0c;我们将重点介绍我们为何选择XML作为…...

1787_函数指针的使用

全部学习汇总&#xff1a;GitHub - GreyZhang/c_basic: little bits of c. 前阵子似乎写了不少错代码&#xff0c;因为对函数指针的理解还不够。今天晚上似乎总算是梳理出了一点眉目&#xff0c;在先前自己写过的代码工程中做一下测试。 先前实现过一个归并排序算法&#xff0c…...

解决nomachine扫描不出ip问题

IP扫描工具Advanced IP Scanner 快速的扫描局域网中存在ip地址以及pc机的活跃状态&#xff0c;还能列出局域网计算机的相关信息。并且ip扫描工具(Advanced IP Scanner)还能够单击访问更多有用的功能- 远程关机和唤醒 软件下载地址...

Web 3.0 发展到什么水平了?

最初&#xff0c;有互联网&#xff1a;电线和服务器的物理基础设施&#xff0c;让计算机和它们前面的人相互交谈。美国政府的阿帕网在1969年发出了第一条消息&#xff0c;但我们今天所知道的网络直到1991年才出现&#xff0c;当时HTML和URL使用户可以在静态页面之间导航。将此视…...

大模型:如何利用旧的tokenizer训练出一个新的来?

背景&#xff1a; 我们在用chatGPT或者SD的时候&#xff0c;发现如果使用英语写提示词得到的结果比我们使用中文得到的结果要好很多&#xff0c;为什么呢&#xff1f;这其中就有一个叫做tokenizer的东西在作怪。 训练一个合适的tokenizer是训练大模型的基础&#xff0c;我们既…...

【LeetCode-中等题】107. 二叉树的层序遍历 II

文章目录 题目方法一&#xff1a;队列层序迭代 题目 方法一&#xff1a;队列层序迭代 解题详情&#xff1a;【LeetCode-中等题】102. 二叉树的层序遍历 res.add(0,zres); //效果是将 zres 列表作为 res 的第一个子列表&#xff0c;并将其它原本在第一位置及之后的子列表向后移…...

斯坦福联合培养博士|专科生的逆袭之路

从山东医学高等专科学校到首都医科大学附属北京天坛医院神经外科博士&#xff0c;再到斯坦福医学院神经外科联合培养博士&#xff0c;知识人网小编带大家看看何世豪通往成功的逆袭之路。 上面照片中这位戴眼镜的主人公就是何志豪&#xff0c;他从山东医学高等专科学校考入泰山医…...

Verilog中parameter在仿真时的应用

parameter能够定义一个常量 例如 parameter [7:0]A 8d123; 在仿真时我们可以用它来改变模块的参数&#xff0c;而不会影响综合的结果。 考虑下面的模块&#xff0c;输入时钟是clk&#xff0c;频率为24MHz&#xff0c;输出一个1Hz的方波驱动小灯让其闪烁 module test1(in…...

v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字

在工作岗位上&#xff0c;上边分配一个任务&#xff0c;创建一个页面&#xff0c;从0-1&#xff0c;全部自己搭建&#xff0c;也没有啥模版&#xff0c;就这么来&#xff0c;那就直接来吧&#xff0c;没办法&#xff0c;那就直接上手&#xff0c;开发过程中&#xff0c;我使用了…...

数据结构——KD树

KD树&#xff08;K-Dimensional Tree&#xff09;是一种用于多维空间的二叉树数据结构&#xff0c;旨在提供高效的数据检索。KD树在空间搜索和最近邻搜索等问题中特别有用&#xff0c;允许在高维空间中有效地搜索数据点。 重要性质 1.分割K维数据空间的数据结构 2.是一颗二叉树…...

python趣味编程-恐龙克隆游戏

Python 中使用 Turtle 的恐龙克隆游戏免费源代码 使用 Turtle 的恐龙克隆游戏是一个用Python编程语言编码的桌面游戏应用程序。该项目包含在 Chrome 浏览器中克隆实际恐龙游戏的多种功能。该项目可以使正在修读 IT 相关课程的学生受益。这个应用程序非常有趣,可以帮助您学习创…...

【漏洞复现】泛微e-office OfficeServer2.php 存在任意文件读取漏洞复现

文章目录 前言声明一、漏洞描述二、漏洞分析三、漏洞复现四、修复建议前言 泛微e-office OfficeServer2.php 存在任意文件读取漏洞,攻击者可通过构造特定Payload获取敏感数据信息。 声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造…...

基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA),效果秒杀CBAM和SE等 | 中科院2023最新发表

目录 1.Yolov8介绍 2.野外火灾烟雾数据集介绍 3.CPCA介绍 3.1 CPCA加入到yolov8 4.训练结果分析 5.系列篇 1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的&#xff08;SOTA&#xff09;模型&a…...

程序员必掌握的核心算法:提升编程技能的关键路径

一&#xff1a;引言 作为程序员&#xff0c;算法是我们编程生涯中的灵魂。算法是解决问题的方法和步骤&#xff0c;它们在计算机科学中扮演着至关重要的角色。无论你是初学者还是经验丰富的专业人士&#xff0c;都需要掌握一些核心算法&#xff0c;因为它们在各种应用场景中频…...

面试算法10:和为k的子数组

题目 输入一个整数数组和一个整数k&#xff0c;请问数组中有多少个数字之和等于k的连续子数组&#xff1f;例如&#xff0c;输入数组[1&#xff0c;1&#xff0c;1]&#xff0c;k的值为2&#xff0c;有2个连续子数组之和等于2。 分析 在从头到尾逐个扫描数组中的数字时求出前…...

王道考研操作系统

王道考研操作系统 计算机系统概述操作系统的概念操作系统的特征操作系统的发展历程操作系统内核中断和异常![在这里插入图片描述](https://img-blog.csdnimg.cn/162452b4c60144e0bd500e180127c447.png)系统调用操作系统结构虚拟机错题 进程与线程进程控制进程通信线程和多线程模…...

HEXO 基本使用

1 新建、编辑并预览文章 1. 新建文章 hexo new [layout] title # 或 hexo n [layout] title创建文章前要先选定模板&#xff0c;在hexo中也叫做布局。hexo支持三种布局&#xff08;layout&#xff09;&#xff1a;post(默认)、draft、page。我们先介绍如何使用已有布局…...

Webpack Sourcemap文件泄露漏洞

Webpack Sourcemap文件泄露漏洞 前言一、Webpack和Sourcemap1.1 什么是Webpack1.2 什么是Sourcemap二、漏洞利用2.1 使用reverse-sourcemap工具2.1 直接看前端代码三、漏洞挖掘漏洞修复前言 Webpack主要是用于前端框架进行打包的工具,打包后形成.js.map文件,如果.js.map文件…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...