中科蓝汛GPIO操作说明

第一种写法:

GPIO配置输入模式   

//内部上拉
GPIOBDE  |= BIT(4); //数字IO使能: 0为模拟IO, 1 为数字IO
GPIOBDIR |= BIT(4); //控制IO的方向: 0为输出, 1为输入.
GPIOBFEN &= ~BIT(4);//0:当作通用GPIO使用 //1:当作其它功能性IO
GPIOBPU  |= BIT(4); //10K上拉使能

GPIO配置输出模式

GPIOBDE  |= BIT(4); //数字IO使能: 0为模拟IO, 1 为数字IO
GPIOBDIR &= ~BIT(4); //控制IO的方向: 0为输出, 1为输入.
GPIOBFEN &= ~BIT(4);//0:当作通用GPIO使用 //1:当作其它功能性IO
GPIOBSET |= BIT(4); // 将PB4 引脚设置输出高
GPIOBCLR |= BIT(4); // 将PB4 引脚设置输出低
GPIOBDRV &= ~BIT(4); // 小电流 具体看手册
GPIOBDRV |= BIT(4);  // 大电流 具体看手册 

gpio口定义:

 

以AB5681为例:(数据手册 AB568X UserManual.pdf)

 第二种写法:

void gpio_output_h(u8 io_num)
{gpio_t gpio;bsp_gpio_cfg_init(&gpio, io_num);if (gpio.sfr) {gpio.sfr[GPIOxFEN] &= ~BIT(gpio.num);gpio.sfr[GPIOxDE] |= BIT(gpio.num);gpio.sfr[GPIOxDIR] &= ~BIT(gpio.num);gpio.sfr[GPIOxSET] = BIT(gpio.num);//gpio.sfr[GPIOxDRV] &= ~BIT(gpio.num); //小电流gpio.sfr[GPIOxDRV] = BIT(gpio.num); //大电流}
}void gpio_output_l(u8 io_num)
{gpio_t gpio;bsp_gpio_cfg_init(&gpio, io_num);if (gpio.sfr) {gpio.sfr[GPIOxFEN] &= ~BIT(gpio.num);gpio.sfr[GPIOxDE] |= BIT(gpio.num);gpio.sfr[GPIOxDIR] &= ~BIT(gpio.num);gpio.sfr[GPIOxCLR] = BIT(gpio.num);//gpio.sfr[GPIOxDRV] &= ~BIT(gpio.num); //小电流gpio.sfr[GPIOxDRV] = BIT(gpio.num); //大电流}
}void gpio_input(u8 io_num)
{gpio_t gpio;bsp_gpio_cfg_init(&gpio, io_num);if (gpio.sfr) {gpio.sfr[GPIOxFEN] &= ~BIT(gpio.num);gpio.sfr[GPIOxDE] |= BIT(gpio.num);gpio.sfr[GPIOxDIR] &= ~BIT(gpio.num);//gpio.sfr[GPIOxPU] |= BIT(gpio.num);	//内部上拉gpio.sfr[GPIOxPD] |= BIT(gpio.num); //内部下拉}
}

调用

gpio_output_h(IO_PB4);    //输出高电平
gpio_output_l(IO_PB4);    //输出低电平
gpio_input(IO_PB4);       //输入

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

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

相关文章

docker file容器化部署Jenkins(一)

Jenkins Github地址:https://github.com/jenkinsci/jenkins 国内镜像地址:https://docker.aityp.com/ 准备工作 # 创建持久化卷目录 mkdir /data/jenkins_home/Jenkins拉取镜像 # 由于Jenkins需要JDK,所以直接拉取带有JDK的Jenkins镜像 doc…

3DDFA-V3——基于人脸分割几何信息指导下的三维人脸重建

1. 研究背景 从二维图像中重建三维人脸是计算机视觉研究的一项关键任务。在虚拟现实、医疗美容、计算机生成图像等领域中,研究人员通常依赖三维可变形模型(3DMM)进行人脸重建,以定位面部特征和捕捉表情。然而,现有的方…

高并发编程

一台64G内存的服务器QPS可以达到9W,TPS(事务)可以达到5K,每个TPS大约包含18个QPS.只读的话QPS可以达到30~40万.阿里云有相关测试工具、测试方法、测试结果。 1、volatile 保证可见性,禁止指令重排,避免多线…

HTML 基础标签——表单标签<form>

文章目录 1. `<form>` 标签:定义表单容器2. `<input>` 标签:多用途输入控件3. `<textarea>` 标签:多行文本输入框4. `<select>` 标签:下拉选择框5. `<option>` 标签:下拉菜单选项6. `<button>` 标签:按钮元素7. `<label>` 标签…

GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序

作者&#xff1a;来自 Elastic Praveen Durairaju GraphQL 提供了一种高效且灵活的数据查询方式。本博客将解释 Hasura DDN 如何与 Elasticsearch 配合使用&#xff0c;以实现高性能和元数据驱动的数据访问。 此示例的代码和设置可在此 GitHub 存储库 - elasticsearch-subgraph…

智能座舱相关术语全解及多模态交互在智能座舱中的应用

文章目录 座舱相关术语全解1. 智能座舱2. UFS3. 多模态交互4. 3D虚拟引擎5. AR/VR6. GNSS7. TTS8. DPU9. 摄像头10. 屏幕/显示器11. 音频12. 无线连接13. 其他组件 多模态交互在智能座舱中有以下一些应用 座舱相关术语全解 1. 智能座舱 智能座舱&#xff08;intelligent cabi…

RSI 5G通信技术中用于标识小区的特定参数

RSI是指在5G通信技术中用于标识小区的特定参数&#xff0c;全称为Radio Subframe Indicator&#xff08;无线子帧指示符&#xff09;。在原文的上下文中&#xff0c;RSI被用来确保相邻小区间有足够的间隔&#xff0c;避免由于RSI冲突导致用户设备&#xff08;UE&#xff09;随机…

selinux和防火墙

目录 selinux 1、selinux的说明 2、selinux的工作原理 安全上下文四个字段&#xff1a; 访问过程&#xff1a; 3、selinux的启动、关闭与查看 &#xff08;1&#xff09;SELinux三种模式 &#xff08;2&#xff09;修改安全上下文 4、selinux对linux服务的影响 防火墙 …

制氮机分子筛的材质选择

制氮机分子筛的材质选择对于其性能和效率至关重要。作为制氮设备中的核心部件&#xff0c;分子筛承担着将空气中的氮气与氧气有效分离的重任。以下是对制氮机分子筛常用材质的详细探讨&#xff1a; 制氮机分子筛的主要材质 碳分子筛(CMS) 碳分子筛由活性炭经过特殊工艺加工而成…

【运动的&足球】足球场地区域图像分割系统源码&数据集全套:改进yolo11-RFAConv

改进yolo11-ContextGuidedDown等200全套创新点大全&#xff1a;足球场地区域图像分割系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展…

Java keytool keystore的相关概念介绍与使用

参考资料 Java证书工具keytool用法总结keytool-简介CA证书介绍与格式转换密钥&#xff0c;私钥&#xff0c;公钥的区分とほほのOpenSSL入門 目录 一. 概念1.1 keystore文件1.2 keytool1.3 非对称加密1.3.1 加密解密1.3.2 数字签名认证1.3.3 通信中的加密与签名过程 1.4 证书格…

项目的风险

风险识别 项目风险变成问题后可能会影响项目的整体成功&#xff0c;因此通常需要考虑以下通用项目风险因素&#xff1a;  利益相关方之间在技术需求方面的冲突。  由于开发组织的地域分布而导致的沟通问题。  工具和技术&#xff08;包括相关技能&#xff09;。 …

MFC图形函数学习04——画矩形函数

MFC中绘制矩形函数是MFC的基本绘图函数&#xff0c;它的大小和位置由左上角和右下角的坐标决定&#xff1b;若想绘制的矩形边框线型、线宽、颜色以及填充颜色都还需要其它函数的配合。 一、绘制矩形函数 原型&#xff1a;BOOL Rectangle(int x1,int y1,int x2,int y2); …

Apache HTTP Server中级操作指南

Apache 中级操作指南 摘要&#xff1a; 本文深入探讨了 Apache HTTP Server 的中级操作方法&#xff0c;包括模块管理、安全设置、性能优化、反向代理设置等内容。通过这些操作&#xff0c;能够进一步提升 Apache 的功能和性能&#xff0c;满足更复杂的网站需求。 一、引言 …

功能测试:方法、流程与工具介绍

功能测试是对产品的各功能进行验证的一种测试方法&#xff0c;旨在确保软件以期望的方式运行并满足设计需求。以下是对功能测试的详细解释&#xff1a; 一、定义与目的 定义&#xff1a;功能测试&#xff08;Functional Testing&#xff09;&#xff0c;也称为行为测试&#…

自制esp32开发板,wifi和蓝牙工作不正常一例

参照标准打了一块esp32的板&#xff0c;烧录和运行各种基本程序&#xff08;点灯&#xff09;都正常&#xff0c;但是启用蓝牙功能的时候&#xff0c;出现了异常&#xff0c;串口中断了&#xff0c;类似于断电重启了。 各种找原因&#xff0c;各种拆元器件看可能的影响&#x…

el-table 多选默认选中(根据返回的id给数据加默认选中状态)

前言 el-table是我们最常用的展示数据的方式&#xff0c;但是有时候需要用到多选来选择数据&#xff0c;新增数据的时候还好&#xff0c;选中状态都是正常的&#xff0c;但是修改就遇到问题&#xff0c;需要对这个已经选择过的数据加上默认的选中状态&#xff0c;本次就是解决…

openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;修改表名&#xff0c;并能顺利查询到修改后表的结构。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.如何查看表的结构&#xff1b; 2.如…

树莓派5实时时钟(RTC)

树莓派5板载一个实时时钟模块。它可以通过 USB-C 电源插口右侧板上的 J5(BAT) 插口进行电池供电。如果没有互联网连接来通过 NTP 获取时间&#xff0c;RTC 可能会很有用。 可以设置唤醒警报&#xff0c;将树莓派5切换到非常低功耗的状态&#xff08;大约3mA&#xff09;。当到达…

分段线性回归

5. 分段线性回归 (Piecewise Linear Regression) 分段线性回归是一种简单的方式&#xff0c;尤其当数据的弧度变化不大但有多个不同趋势段时。可以将数据分为多个区间&#xff0c;每个区间内拟合一条直线。最终的模型是这些直线的组合。 优点&#xff1a;模型简单、易解释&am…