【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

news2024/11/26 19:53:54

目录

  • 一、概述
  • 二、配置复用控制寄存器,使能GPIO功能
  • 三、配置`GPIO_DIR`寄存器,选择输出
  • 四、配置`GPIO_DATA`寄存器,输出高电平
  • 五、测试


在这里插入图片描述

一、概述

这篇文章根据海思SS528芯片提供的《22AP30 H.265编解码处理器用户指南.pdf》文档(文档路径:SS528ReleaseDoc\hardware\chip),演示怎样操作GPIO寄存器来控制某个IO口输出高电平,本文控制的是 GPIO20_6

关于如何操作寄存器的步骤,在文档的13.6.3有提供说明,结合本文目的分为三个步骤:

  • 配置复用控制寄存器,使能GPIO功能;
  • 配置GPIO_DIR寄存器,选择输出;
  • 配置GPIO_DATA寄存器,写入输出值 1 ,表示输出高电平。
    在这里插入图片描述

在这里插入图片描述

二、配置复用控制寄存器,使能GPIO功能

复用是指该管脚有多种功能,可以根据控制寄存器里的值,来选择使用哪个功能。
关于GPIO管脚复用控制寄存器的说明在 22AP30_PINOUT_CN.xlsx (文档路径:SS528ReleaseDoc\hardware\chip),打开22AP30_PINOUT_CN.xlsx,在下面选择表格管脚控制寄存器,按Ctrl+F搜索GPIO20_6,找到我们要配置的管脚寄存器,如下图:
在这里插入图片描述

根据表格信息知道,

  • 寄存器地址0x17c701d0
  • 寄存器的值可以配置为0x1200,表示 使能GPIO功能、IO6挡位8、关闭上拉、打开下拉
    在这里插入图片描述

在这里插入图片描述

三、配置GPIO_DIR寄存器,选择输出

要配置寄存器,首先需要找到它的地址,GPIO_DIR寄存器是采用 基地址+偏移地址 的方式来获得的。

GPIO20基地址在《22AP30 H.265编解码处理器用户指南.pdf》13.6.4可以查到,为:0x110a_4000
在这里插入图片描述

GPIO_DIR的偏移地址为400,GPIO20_6设置为输出功能,即设置的值第6位为1,其他都为0,用二进制表示为0100 0000,转换为十六进制为0x40;
在这里插入图片描述

小结

  • GPIO20_6的GPIO_DIR寄存器地址为:0x110a4400
  • GPIO20_6设置为输出,值为:0x40

在这里插入图片描述

四、配置GPIO_DATA寄存器,输出高电平

要配置寄存器,首先需要找到它的地址,GPIO_DATA寄存器也是采用 基地址+偏移地址 的方式来获得的。

GPIO20基地址在《22AP30 H.265编解码处理器用户指南.pdf》13.6.4可以查到,为:0x110a_4000,它的偏移地址给了一个范围,我们选择0x3FC,表示寄存器的[7:0]操作全部有效。如下图:
在这里插入图片描述

我们要使GPIO20_6输出高电平,即设置的值第6位为1,其他都为0,用二进制表示为0100 0000,转换为十六进制为0x40;

小结

  • GPIO20_6的GPIO_DATA寄存器地址为:0x110a43fc
  • GPIO20_6设置为输出,值为:0x40

在这里插入图片描述

五、测试

根据海思SDK提供的寄存器工具,测试GPIO操作,测试工具在SDK包的 路径为:SS528V100R001C02SPC003\SS528V100_SDK_V2.0.0.3\osdrv\tools\board\reg-tools-1.0.0\bin

测试结果如图:
在这里插入图片描述

测试命令如下:

# 配置复用寄存器
bspmm 0x17c701d0 0x00001200

# 配置方向寄存器为输出
bspmm 0x110a4400 0x40

# 配置输出高电平
bspmm 0x110a43fc 0x40

# 配置输出高电平
bspmm 0x110a43fc 0x00

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

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

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

相关文章

MIT6.042学习笔记(一)——强归纳法,数论(1)

如果学生在学校里学习的结果是使自己什么也不会创造,那他的一生永远是模仿和抄袭。——列夫托尔斯泰 文章目录 引言强归纳法例题:拆积木游戏证明 数论(第一节)整除运算例题:取水证明 公约数例题证明 Eucild算法 引言 …

C语言-static的用法

1、static 关键字 C 语言中 static 关键字修饰变量和函数。 static有三种不同的用法: 1.修饰局部变量; 2.修饰全局变量; 3.修饰函数 局部变量:当函数第一被调用,函数中的静态局部变量被初始化,再次调用这个函数&…

gcc/g++

文章目录 sudo 提权添加白名单gcc / g预处理编译汇编链接 sudo 提权添加白名单 1.寻找root用户 在 /etc/sudoers 文件中修改 添加普通用户的白名单 :/root找到root的白名单所在行数 2.wq!强制保存退出,即可添加成功 gcc / g 推荐写法 gcc mycode.c -o mytest预…

Python绘制柱状图堆叠图

本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 文章目录 一、引入库二、数据准备三、绘制基本柱状堆叠图1.绘制基本图形2.设置柱子宽度、添加刻度标签和旋转角度 四、完整代码五、运行结果六、python绘图往期系列文章目录 一、引入库 import matplotlib.pyplot as plt imp…

Hyperledger Fabric 超级账本学习【14】Fabcar实例——通过 Nodejs命令 调用链码

文章目录 Hyperledger Fabric2.X 网络 以后对应的 Node Npm 版本需要升级,默认版本太低,后面会报错启动 Fabcar 网络报错运行以下命令来杀死当前运行或者活跃的容器:清除所有缓存网络:添加映射文件进入javascript目录在此文件夹内…

初阶数据结构(7)(树形结构的概念和相关重要定义、树的表示形式、树的应用、二叉树【两种特殊的二叉树、性质、存储、遍历、基本操作、二叉树相关的 OJ 题】)

接上次博客:初阶数据结构(6)(队列的概念、常用的队列方法、队列模拟实现【用双向链表实现、用数组实现】、双端队列 (Deque)、OJ练习【用队列实现栈、用栈实现队列】)_di-Dora的博客-CSDN博客 目录 树形结构的概念 …

DPDK官方文档说明

目录 1、Release Notes 2、Getting Started Guide for Linux/FreeBSD/Windows 3、Programmer’s Guide 4、API Reference 5、Sample Applications User Guide 6、DPDK Tools User Guides 7、Testpmd Application User Guide 8、Network Interface Controller Drivers …

网站优化,如何挖掘长尾关键词?

做网站优化来说,挖掘一些长尾关键词的重要性是非常大的,因为长尾关键词给我们带来的流量可能会超过我们的主关键词。如何挖掘长尾关键词,挖掘长尾关键词的的方式有哪些是一个重要的问题。 长尾词挖掘方式: 【1】使用长尾词挖掘工…

机器学习——线性回归、梯度下降

文章目录 一、机器学习的分类二、线型回归Linear regression(单变量线性回归)三、代价函数3.1 建模误差3.2 平方误差代价函数 Squared error cost function3.3 梯度下降3.4 梯度下降与线性回归相结合 一、机器学习的分类 监督学习:学习数据带…

生成模型之高斯判别分析(GDA)和贝叶斯

生成模型与判别模型的区别 判别模型的学习算法学习给定x下的条件分布p(y|x; θ), 例如,Logistic Regression(对数几率回归)将p(y|x; θ)建模为,g是sigmoid函数。 考虑一个分类问题,基于动物的某些特征想…

电商数据监测:如何获取想要的电商平台数据?

随着电商行业的发展,越来越多的企业开始通过电商平台销售商品。为了更好地掌握市场信息和消费者需求,企业需要获取电商平台上的数据。这些数据可以帮助企业制定营销策略、优化产品设计和提高竞争力。本文将介绍如何使用电商API获取想要的电商平台数据。 …

数据库的增删改查(一)

1、CRUD *注释:在SQL中可以使用"--空格描述"来表示注释说明 *CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 2、新增(Create) 语法: insert [into] table_name [(column[,column] ...)…

【红队靶场】暗月五月考核靶场sunday

红队靶场 🎉B站配套视频:【顺手挂个三连呗】 https://www.bilibili.com/video/BV1xu4y1Z71y/?share_sourcecopy_web&vd_source0e30e09a4adf6f81c3038fa266588eff🔥系列专栏:红队靶场 🎉欢迎关注🔎点赞…

【MySql】ProxySQL

文章目录 ProxySQL运行机制ProxySQL安装ProxySQL的Admin管理接口和admin管理接口相关的变量admin-admin_credentialsadmin-stats_credentialsadmin-mysql_ifaces 读写分离环境信息部署步骤 负载均衡连接池自动摘除宕机的DB动态加载配置访问控制查询缓存ProxySQL 集群来源 Proxy…

送礼物 dfs 双向dfs 剪枝 java

🍑 送礼物 达达帮翰翰给女生送礼物,翰翰一共准备了 N N N 个礼物,其中第 i i i 个礼物的重量是 KaTeX parse error: Undefined control sequence: \[ at position 2: G\̲[̲i\]。 达达的力气很大,他一次可以搬动重量之和不超…

有效的括号——力扣20

题目描述 思路 1.判断括号的有效性可以使用「栈」这一数据结构来解决 2.遍历给定的字符串 s。当遇到一个左括号时,我们会期望在后续的遍历中,有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合,因此我们可以将这个左括号放入栈顶。…

2.项目中的文件

项目的路径是这样的 目录 1 pages 1.1 json 1.2 wxml 1.3 wxss 1.4 js 2 utils 3 .eslintrc.js 4 app.js 5 app.json 6 app.wxss 7 project.config.json 8 project.private.config.json 9 sitemap.json 1 pages pages 用来存放所有小程序的页面&am…

数据结构与算法基础(青岛大学-王卓)(4)

第四弹啊,栈和队列终于叮叮咚咚看完了,小龙虾呀鳝鱼汤啊倍儿香~~~~,配合本文食用更香 😃 文章目录 栈和队列栈队列案列的引入栈的表示和操作栈的抽象数据类型定义顺序栈顺序栈的表示顺序栈的初始化顺序栈基本操作顺序栈的入栈顺序…

基于Python的接口自动化-JSON模块的操作

目录 引言 一、JSON是啥? 二、JSON的有效数据类型 三、Python JSON库的使用 结语 引言 在使用Python进行接口自动化测试脚本时,一般都是脚本只写接口测试逻辑实现,而执行脚本时需要的测试用例数据都是写入excel、数据库或者指定的配置文…

入门编程指南:如何从零开始学习编程?

一、自学编程需要注意什么? 自学编程需要注意以下几点: 选择适合自己的编程语言,在学习初期建议选择易入手的编程语言。需要不断地练习,并建立自己的编程项目,以此提高编程技巧和应用能力。追求知识的全面性&#xf…