X2000 Linux 驱动中配置GPIO的上下拉

2023-11-19

由于sdk不支持标准gpio api函数int gpio_pull_updown(unsigned gpio,unsigned value),需要用到soc/gpio.h中的int jzgpio_set_func(int port, enum gpio_function func, unsigned long pins)函数。

函数原型如下:

#include<soc/gpio.h> //包含此结构体
enum gpio_function { //gpio功能枚举,提供给gpio功能设置函数使用
GPIO_FUNC_0 = 0x10,
GPIO_FUNC_1 = 0x11,
GPIO_FUNC_2 = 0x12,
GPIO_FUNC_3 = 0x13,
GPIO_OUTPUT0 = 0x14,
GPIO_OUTPUT1 = 0x15,
GPIO_INPUT = 0x16,
GPIO_INT_LO = 0x18,
GPIO_INT_HI = 0x19,
GPIO_INT_FE = 0x1a,
GPIO_INT_RE = 0x1b,
GPIO_INT_MASK_LO = 0x1c,
GPIO_INT_MASK_HI = 0x1d,
GPIO_INT_MASK_FE = 0x1e,
GPIO_INT_MASK_RE = 0x1f,
GPIO_PULL_HIZ = 0x80,
GPIO_PULL_UP = 0xa0,
GPIO_PULL_DOWN = 0xc0,
};

int jzgpio_set_func(int port, enum gpio_function func, unsigned long pins)
功能:设置gpio功能
参数:
port //gpio引脚组别
func //描述gpio引脚功能
pins //gpio引脚
返回值:
成功: 0
失败:负数

举例

设置PC00为上拉:

int gpio_num = 64;

jzgpio_set_func(gpio_num /32, GPIO_PULL_UP, 1<< (gpio_num % 32));

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

X2000 Linux 驱动中配置GPIO的上下拉 的相关文章

随机推荐

  • Visual Studio Code 的安装教程和配置C语言环境(详解版)

    最近想装一个VS Code 来写C C 程序 但是看了网上的很多教程发现并不是那么的好 大部分都尝试失败了 摸索了很久找到了一个比较可靠的方法 目录 一 Visual Studio Code 的安装教程 二 接下来就是C语言的环境配置 三
  • (OD)基站维护工程师

    目录 题目描述 输入描述 输出描述 代码 题目描述 小王是一名基站维护工程师 负责某区域的基站维护 某地方有n 个基站 1
  • Rust swap

    文章目录 fn swap lt a gt a a mut String b a mut String let tmp a a b b tmp let mut a aaa to string let mut b bbb to string s
  • 浅解cocos2d-x中的CCSprite绘制原理

    cocos2d x版本为2 0 4 此画图调用的是opengl es 2 0版本 支持三角形画图 故必须有一个顶点数组 此定义定义在CCSprite h中 ccV3F C4B T2F Quad m sQuad 而这个顶点数组的定义为 4 c
  • Altium designer Silkscreen Over Component Pads

    在画pcb的时候 执行设计规则检查的时候总会出现Silkscreen Over Component Pads这个问题 该问题的意思是丝印层的文字和元件焊盘重合或者挨着很近 解决办法1 修改规则 在design rule中选择Silkscre
  • django解决使用DateTimeField添加、修改记录时不动态更新时间的问题

    解决方法 定义model时 若想动态显示最后的修改时间 使用 from django db import models from datetime import datetime models DateTimeField default d
  • 码云协同开发

    一 协同开发 为每一开发者创建一个分支 各自都在各自的分支上写代码 互不影响 完成后再合并dev分支 方式1 创建项目合作者 方式2 创建项目合作者
  • IP组播 —— IP组播的概念和地址

    一 IP数据报的三种传输方式 二 IP组播地址的范围及特点 三 硬件组播
  • SpringBoot找不到主类

    用idea把一个单独的springboot项目打开可以正确执行 可我把整个运维项目都放在一个目录用idea打开 idea识别不到主类 查看edit configurations里面的 main class也指定到了对应的applicatio
  • C#初始化数组的三种方式

    C 声明数组并初始化 有三种方式 对于一维数组 using System using System Data using System Configuration using System Web using System Web Secu
  • jenkins创建html文件夹失败,jenkins html发布者:目录存在,但未能复制到

    难道有人有不同的答案吗 Jenkins安装在Ubuntu 12 04下的tomcat下 我已经配置了使用CVS存储库进行构建 当我尝试进行新构建时 由于以下错误而失败 INFO INFO BUILD SUCCESS INFO INFO To
  • [实习]git ci/cd概念,创建流程以及常见字段含义

    1 基本概念 1 1 CI CD CI Continuous Integration 为持续集成 即在代码构建过程中持续地进行代码的集成 构建 以及自动化测试等 有了 CI 工具 我们可以在代码提交的过程中通过单元测试等尽早地发现引入的错误
  • 【安全脚本】模拟勒索病毒

    0x00 前置 1 将电脑上的重要文件加密 将文件以二进制的方式进行加密处理 导致加密过后的文件 要打开必须要解密 要解密必须要解密程序 2 传播 系统or程序漏洞 人为疏忽 后门或木马程序 3 解决 交钱 破解 数据备份 0x01 pyt
  • 华为机试题103-Redraiment的走法

    描述 Redraiment是走梅花桩的高手 Redraiment可以选择任意一个起点 从前到后 但只能从低处往高处的桩子走 他希望走的步数最多 你能替Redraiment研究他最多走的步数吗 数据范围 每组数据长度满足1 n 200 数据大
  • linux内核中的设计模式

    创建型 Object Pool Object Pool模式可以提升性能 尤其是在对象的分配 初始化成本高 使用频率高 但使用时间短的情况下 对象池可以设置对象池的大小和回收时间缓存预分配的对象 NT和Linux都有简单的预分配缓存对象的机制
  • web移动端布局的那些事儿

    原文地址 github com HuJiaoHJ bl web移动端布局范畴很广 其中比较基础的几个话题 移动端适配 1px border 基础布局 本文主要分享这三个话题 一 移动端适配 提起移动端适配 大家想到的肯定是rem flexi
  • 软件实施的面试准备

    01 计划安排 A 材料准备 离职证明 换 失业证 失业证 失业保险 培训课程 找体检报告 彩印一份 照片 学历证明 B 面试准备 B01 网上简历作修改 B02 练习自我介绍 DHV价值展示 不要太刻意 B03 工作内容讲解 B04 常见
  • 尚硅谷 Vue2.0 + Vue3.0 入门到精通教程学习笔记 (四)

    第四章 Vue 中的 ajax 4 1 解决开发环境 Ajax 跨域问题 Vue 脚手架配置代理 本案例采用 axios 作为发送 Ajax 请求的库 因此首先需要下载并引入 axios 在 VSCode 终端处输入命令 npm i axi
  • mysql中subsrt_MySQL

    MySQL SUBSTR 函数 截取字符串 SUBSTR 与SUBSTRING 意思相等 函数语法 SUBSTR str pos 截取从pos位置开始到最后的所有str字符串 SUBSTR str pos len 参数说明 str为列名 字
  • X2000 Linux 驱动中配置GPIO的上下拉

    由于sdk不支持标准gpio api函数int gpio pull updown unsigned gpio unsigned value 需要用到soc gpio h中的int jzgpio set func int port enum