1-3ARM_GD32点亮LED灯

news2025/1/27 13:09:53

简介:

最多可支持 112 个通用 I/O 引脚(GPIO),分别为 PA0 ~ PA15,PB0 ~ PB15,PC0 ~ PC15,PD0 ~ PD15,PE0 ~ PE15,PF0 ~ PF15 和 PG0 ~ PG15,各片上设备用其来实现逻辑输入/输出功能。每个 GPIO 端口有相关的控制和配置寄存器以满足特定应用的需求。外设 GPIO 引 脚上的外部中断在中断/事件控制器(EXIT)中有相关的控制和配置寄存器。 GPIO 端口和其他的备用功能(AFs)共用引脚,在特定的封装下获得最大的灵活性。GPIO 引脚 通过配置相关的寄存器可以用作备用功能输入/输出。每个 GPIO 引脚可以由软件配置为输出(推挽或开漏)、输入、外设备用功能或者模拟模式。每 个 GPIO 引脚都可以配置为上拉、下拉或浮空。除模拟模式外,所有的 GPIO 引脚都具备大电 流驱动能力。

原理图:

 案例演示使用寄存器的方式点亮PA8引脚对应的led灯

GPIO寄存器的基地址如下所示:

  1. GPIOA 基地址:0x4001 0800
  2. GPIOB 基地址:0x4001 0C00
  3. GPIOC 基地址:0x4001 1000
  4. GPIOD 基地址:0x4001 1400
  5. GPIOE 基地址:0x4001 1800
  6. GPIOF 基地址:0x4001 1C00
  7. GPIOG 基地址:0x4001 2000
  8. AFIO 基地址:0x4001 0000

查看数据手册可知端口控制寄存器:偏移地址为0x40,PA8端口位于端口控制寄存器1的位置

模式为与配置位如下所示:

寄存器配置参考:

配置位:

模式位:

端口输出控制寄存器:

或运算:有真为真,全假为假

片上外设工作需要配置时钟源:通过寄存器打开时钟源

程序:

#include <stdint.h>
// 基础地址,将16进制数转换为地址:基地址 + 偏移量
#define  GPIOA_CTL1 (*(uint32_t *)(0x40010800 + 0x04))
// 配置
#define  GPIOA_OCTL (*(uint32_t *)(0x40010800 + 0x0C))
// 外设总线控制,时钟使能控制寄存器
#define  RCU_APB2EN (*(uint32_t *)(0x40021000 + 0x18))

static void Delay(uint32_t count)
{
	while (count--);
}

int main(void)
{
	/*使能GPIO的时钟*/
	RCU_APB2EN |= 1 << 2;
	/*配置为推挽输出模式*/
	GPIOA_CTL1 = 0x44444442;
	/*配置为输出高电平*/

	while (1)
	{
		GPIOA_OCTL |= 1 << 8;  //00000000 00000000 00000001 00000000	
		Delay(1000000);
		GPIOA_OCTL &= ~(1 << 8); //11111111 11111111 11111110 11111111
		Delay(1000000);
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1672041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+微信小程序的订餐(点餐)配送系统设计与实现+毕业论文(12000字)

系统介绍 本微信小程序在线订餐系统管理员功能可以修改个人中心&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜品信息管理&#xff0c;订单信息管理&#xff0c;取消订单管理&#xff0c;订单配送管理&#xff0c;菜品评价管理以及系统管理。微信小程序用户可以…

【玄机平台】应急响应

前言&#xff1a; 感谢玄机平台靶机的提供&#xff0c;让我学到了不少东西 平台题解 &#xff1a; 第一章 应急响应-webshell查杀 1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx} ssh连接 下载/var/www/html源码&#xff08;finsehll连直接下&#xff09;压缩丢…

日志的基本用法

目标 1. 掌握如何设置日志级别 2. 掌握如何设置日志格式 3. 掌握如何将日志信息输出到文件中 1. logging模块 Python中有一个标准库模块logging可以直接记录日志 1.1 基本用法 import logging logging.debug("这是一条调试信息") logging.info("这是一条…

【C++杂货铺】红黑树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 红黑树的概念 &#x1f4c1; 红黑树的性质 &#x1f4c1; 红黑树节点的定义 &#x1f4c1; 红黑树的插入操作 &#x1f4c1; 红黑树和AVL树的比较 &#x1f4c1; 全代码展示 &#x1f4c1; 总结 &#x1f308;前言…

C#【进阶】常用泛型数据结构类

常用泛型数据结构类 文章目录 常用泛型数据结构类1、List1、List的本质2、声明3、增删查改4、遍历思考 存储基类类型列表 2、Dictionary1、Dictionary的本质2、声明3、增删查改4、遍历思考1 数字对应的大写思考 2 字母出现的次数 3、顺序存储和链式存储1、数据结构2、线性表3、…

前端铺子-NodeJS后端:基于Node.js构建高效后端服务的探索与实践

一、引言 随着前端技术的快速发展&#xff0c;越来越多的开发者开始关注前后端分离的开发模式。前端铺子作为一个旨在服务前端开发者的开源项目&#xff0c;近期推出了基于Node.js的后端系统。该系统通过整合Node.js、Nodemon和MySQL等技术&#xff0c;为前端开发者提供了一个…

每日一题 城市群的数量

题目解析 城市群数量_牛客题霸_牛客网 当解决这个问题时&#xff0c;首先需要理解题目要求。题目中给出了一个城市之间的邻接矩阵&#xff0c;矩阵中的元素表示城市之间是否直接相连。如果两个城市直接相连&#xff0c;或者通过其他城市间接相连&#xff0c;它们就属于同一个城…

Java面试八股之String s = “String“;和String s = new String(“String“);有什么区别

Java中String s "String";和String s new String("String");有什么区别 字符串字面量&#xff08;"String"&#xff09;&#xff1a; 常量池&#xff1a;使用字面量方式创建字符串时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;会在运…

数组 | 双指针经典题目

Leetcode977&#xff1a;有序数组的平方 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/squares-of-a-sorted-array/d…

AI2024(64bit) Adobe Illustrator 软件安装包下载

AI2024(64bit) Adobe Illustrator 软件安装包下载地址&#xff1a; 百度网盘下载https://pan.baidu.com/s/1C10-2JVN1rxFF5VFRuV2Yw?pwdSIMS 在创意设计的浩瀚宇宙中&#xff0c;Adobe Illustrator 2024如同一颗璀璨新星&#xff0c;以其无与伦比的创新功能和优化体验&#x…

AI翻唱+视频剪辑全流程实战

目录 一、AI翻唱之模型训练 &#xff08;1&#xff09;模型部署 &#xff08;2&#xff09;数据集制作——搜集素材 &#xff08;3&#xff09;数据集制作——提升音频质量 方法一&#xff1a;使用RVC提供的音频处理功能。 方法二&#xff1a;可以使用音频剪辑工具Ad…

vivado Kintex UltraScale+ 配置存储器器件

Kintex UltraScale 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Kintex UltraScale 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 &#xff0c; 并支持通过 Vivado 软件对其中所列非易失性存…

CommandLineRunner和ApplicationRunner接口实现类中run方法发生异常导致spring程序关闭

今天其他组的一个程序在k8s中启动报错&#xff0c;启动之后立马就关闭了。我去看日志&#xff0c;发现最后面报了一个UnknownHostException异常&#xff0c;感觉是这个原因导致的&#xff0c;然后查看异常栈。定位到一个CommandLineRunner接口实现类&#xff0c;这个实现类里面…

一道dp错题

dis(a,b)就是两点之间的距离公式 那么这道题该怎么解呢,.先看数据范围x,y<1e4,so,18个点两点之间距离最大18*1e4*sqrt(2)<2^18,所以如果跳过的点大于18个点,那么显然一个区间内最多不会跳跃超过17个点 现在我们想知道前i个点跳跃几次在哪跳跃能够达到最小花费,不妨设跳…

STM32(GPIO)

GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电…

迄今为止最全- 前端性能优化

简介 当我们说前端性能优化的时候&#xff0c;指的可能是不同场景的性能优化。前端涉及性能优化的场景主要有&#xff1a; 项目构建性能优化 页面性能优化 加载时性能优化 运行时性能优化 构建性能主要指构建速度&#xff0c;优化方法和打包工具直接相关&#xff0c;主要…

航空科技:探索飞机引擎可视化技术的新视界

随着航空技术的飞速发展&#xff0c;飞机引擎作为航空器最为关键的部件之一&#xff0c;其性能直接影响到飞机的安全性、经济性和环保性。因此&#xff0c;飞机引擎可视化技术的应用日益成为航空行业研究和发展的热点。 通过图扑将复杂的飞机引擎结构和工作原理以直观、生动的…

[GXYCTF 2019]Ping Ping Ping(内联执行)、[鹤城杯 2021]EasyP ($_SERVER)

目录 [GXYCTF 2019]Ping Ping Ping 内联执行 [鹤城杯 2021]EasyP [PHP_SELF]、$_SERVER[SCRIPT_NAME] 与 $_SERVER[REQUEST_URI] RCE命令注入可参考&#xff1a; RCE漏洞及其绕过——[SWPUCTF 2021 新生赛]easyrce、caidao、babyrce-CSDN博客 [GXYCTF 2019]Ping Ping Pin…

有哪些网络兼职适合大学生参与?揭秘几个简单又实用的兼职机会

有哪些网络兼职适合大学生参与&#xff1f;揭秘几个简单又实用的兼职机会 对于大学生而言&#xff0c;除了专注于学业&#xff0c;利用空余时间参与一些网络兼职&#xff0c;不仅能锻炼个人技能&#xff0c;还能为未来的职业生涯积累宝贵的经验。想象一下&#xff0c;步入社会…

基于SpringBoot + Vue的学生宿舍课管理系统设计与实现+毕业论文(15000字)+开题报告

系统介绍 本系统包含管理员、宿管员、学生三个角色。 管理员&#xff1a;管理宿管员、管理学生、修改密码、维护个人信息。 宿管员&#xff1a;管理公寓资产、管理缴费信息、管理公共场所清理信息、管理日常事务信息、审核学生床位安排信息。 学生&#xff1a;查看公共场所清理…