Linux下C语言编程(1):IO编程

article/2025/9/22 7:44:11

  笔者今天来讲讲Linux下IO口的使用。用的硬件是三大开源器件之一的BeagleBone(狗骨头)。

(PS 三大开源器件:树莓派、Arduino和Beagle Bone

在这里插入图片描述

硬件介绍

  1. TI公司的AM3358 集成 1G MHz ARM Cortex™ A8 内核,
  2. 4GB eMMC Flash 存储器
  3. 512MB DDR3 SDRAM 存储器,
  4. 集成 NEON™ SIMD 协处理器,集成 SGX 530 图形 引擎,集成可编程实时单元子系统,集成 32KB 指令缓存 和 32KB 数据缓存 ,支持奇偶校验,集成 256KB 二级缓存,支持错误校验码
  5. 一个 HDMI D type 接口( 16 位色输出,支持音频输出),一个 10/100M 以太网接口( RJ45 连接器),一个集成了 PHY 的高速 USB 2.0 OTG 接口( Mini USB B 型连接器),一个集成了 PHY 的高速 USB 2.0 HOST 接口( USB A 型连接器),一个 TF 卡接口(兼容 SD/MMC,一个 3 线调试串口( 6 pin 2.54 间距连接器)
    一个 HDMI D type 接口,两个扩展接口,可扩展 LCD 、 UART 、 eMMC 、 ADC 、 I2C 、 SPI 和 PWM 等接,一个 JTAG 接口( 20 pin 标准接口, 默认未焊接 连接器)
    在这里插入图片描述

软件使用

使用的 Eclipse C/C++ 来进行操作。
如果不懂如何利用Eclipse操作的话,推荐看这两篇博客介绍。
Eclipse 进行Linux远程开发
Eclipse 远程Debug调试C程序
在这里插入图片描述

IO口的使用

  在使用GPIO的时候,首先需要查看一下当前哪些IO口可以直接使用。在 /sys/class/gpio下面,
在这里插入图片描述
  引脚分配图如下:
在这里插入图片描述
  如果要使用的IO口没有找到,则需要使用export指令将IO口导成用户可以使用的状态,这个时候就可以发现多了一个要使用的IO口的目录。

  在这个目录里面就可以直接操作IO口设置输入输出,查看当前值。
在这里插入图片描述
在这里插入图片描述
  之前听到过一句很经典的话,Linux下一切皆文件,所以IO设备也当文件处理即可。

1. IO口初始化

  编写思路同上文讲的一样,注意的一点是操作的IO口的路径要写正确。

a. 首先要export对应的端口,现在用fopen fwrite函数来写入对应的端口名。
b. 设置输出还是输入模式。同样使用文件操作函数进行,写入out/in即可。

//头文件定义设备路径#ifndef _IO_H_
#define _IO_H_#include "stdio.h"
#include "string.h"
#include "time.h"
#include "unistd.h"
#define   GPIO_DIR  "/sys/class/gpio/"void GPIOInit(int PinName,int InOrOut);
void SetGPIO(int PinName);
void ResetGPIO(int PinName);
unsigned char ReadGPIO(int PinName);#endif//.c文件函数实现
void GPIOInit(int PinName,int InOrOut)  //1代表输出,0代表输入
{FILE *stream = NULL;char Path[50];char Temp[20];stream = fopen(GPIO_DIR"export","w");sprintf(Temp,"%d",PinName);fwrite(Temp,sizeof(int),2,stream);fclose(stream);if(InOrOut==1){sprintf(Path,"%s%s%d%s",GPIO_DIR,"gpio",PinName,"/direction");stream = fopen(Path,"r+");    //已存在文件并且可以读写fwrite("out",sizeof(char),3,stream);fclose(stream);}else{sprintf(Path,"%s%s%d%s",GPIO_DIR,"gpio",PinName,"/direction");stream = fopen(Path,"w+");   //新建文件并且读写fwrite("in",sizeof(char),2,stream);fclose(stream);}
}

2. IO口输出

  通过fwrite函数对IO设备文件写入1或者0,即可设置IO口 高低电平

void SetGPIO(int PinName)
{FILE *stream = NULL;char Path[50];sprintf(Path,"%s%s%d%s",GPIO_DIR,"gpio",PinName,"/value");stream = fopen(Path,"w+");fwrite("1",sizeof(char),1,stream);printf("On\n");fclose(stream);
}void ResetGPIO(int PinName)
{FILE *stream = NULL;char Path[50];sprintf(Path,"%s%s%d%s",GPIO_DIR,"gpio",PinName,"/value");stream = fopen(Path,"w+");fwrite("0",sizeof(char),1,stream);   //设置GPIO高低电平printf("Off\n");fclose(stream);
}

3. IO口输入

  读IO口 电平状态 使用fread函数或者fscanf函数都可以

unsigned char ReadGPIO(int PinName)
{FILE *stream = NULL;char Path[50];char Temp;sprintf(Path,"%s%s%d%s",GPIO_DIR,"gpio",PinName,"/value");stream = fopen(Path,"w+");  //w+,新建文件并且读写,r+存在文件,且读写//fscanf(stream,"%s",Temp);fread(&Temp,sizeof(char),1,stream);   //扫描或者读端口数据都可以fclose(stream);return Temp;}

下一篇博文: Linux下C语言编程(2):ADC编程


http://chatgpt.dhexx.cn/article/Guu9apuv.shtml

相关文章

IO接口编程

IO接口编程 作者: Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav1&wvr6&is_all1 GitHub:github.com/saint-000 CSDN: https://me.csdn.net/qq_405319…

网络编程IO

文章目录 前言用户空间和内核空间系统调用一、同步IO模型1、阻塞式IO模型2、非阻塞式IO模型3、IO复用模型4、信号驱动IO模型 二、异步IO模型三、同步和异步 前言 IO操作由两个部分组成:发起IO请求、实际进行IO操作。 也就是下图所示的等待数据从磁盘拷贝到内核空间…

Linux 下文件IO编程进程控制实验

Linux 下文件IO编程&进程控制实验 一、基本I/O操作 (1).Linux的输入/输出(I/O)操作,通常为五个方面:打开,读取,写入,定位和关闭;对应的函数分别为:open(…

文件IO(IO编程)

一、文件IO&#xff08;IO编程&#xff09; 系统IO&#xff1a;和系统有关的IO接口函数 标准IO: 标准库里面的IO接口函数 #include <stdio.h> 目录操作&#xff1a;操作目录相关的IO接口函数 LCD屏的操作&#xff1a;刷图 TS(touch screen)触摸屏的操作:点击、滑动 二、…

I/O编程

一、标准IO 1.1、概述 标准IO 是ANSI C提供的函数接口&#xff0c;在文件IO的基础上封装出来的。任何兼容标准C库的操作系统都可以使用接口&#xff0c;具有更好的移植性。标准IO在执行时也会用到系统调用&#xff0c;为了增加内核的工作效率&#xff0c;减少资源浪费&#…

小米平板2装win10(附驱动)

前段时间在折腾着怎么给米pad2装win10&#xff0c;结果驱动什么的折腾了好久。 给米pad2装win10&#xff0c;其实就和给普通的电脑装win10差不多的步骤。 第一步&#xff0c;制作U盘启动器。工具什么的就用官方的winPE就好&#xff0c;iso就随意吧。 第二步&#xff0c;给米…

小米笔记本系统win10家庭版升级为企业版(专业版)

一.背景 新入职一家IT公司,由于公司领导层是小米粉,基本新入职的员工人手一本小米笔记本.小米笔记本默认自带的是家庭版的,由于之前公司很多人用的都是家庭版的,在某些极为特殊的软件开发情况下,家庭版的配置给开发带来了极大的困难,后来经过查资料验证企业版是不会出现这种情…

小米mix2s刷win11和android双系统

在给电脑安装系统的过程中&#xff0c;可能会因为各种原因出现windows无法安装的情况&#xff0c;我在给小米mix2s安装win11时发现出现了“计算机意外地重新启动或遇到错误&#xff0c;windows无法安装”的情况&#xff0c;下面就来教一下大家两种解决方法&#xff0c;希望可以…

小米air13.3一代的win10系统重装

仅作为记录&#xff0c;大佬请跳过 小米air的系统重装在进入bios之后&#xff0c;选择u盘启动时&#xff08;需要设置一个密码&#xff0c;然后关闭secure boot&#xff09;有点跟神船不一样&#xff0c;作为记录。 参考大佬博主文章传送门

Win10 IPv6 远程桌面连接(小米路由器)

前排广告&#xff1a;2021金三银四&#xff0c;字节跳动招人季&#xff0c;平均反馈时间仅1天&#xff01;选择覆盖达6大城市&#xff01;——2021年字节跳动飞书团队内推活动正式开启&#xff0c;岗位列表见&#xff1a;https://job.toutiao.com/s/eNtDcGu。除了这个投递连接外…

小米4A千兆刷OpenWrt_Win10

在Linux上试了一下&#xff0c;最终telnet 196.168.31.1失败&#xff0c;网上找了一些教程&#xff0c;改到win10下刷成功了。 1 先安装Pthon3 和pip3&#xff0c;然后pip3 install requests&#xff0c;不然会报错 2 win10开启telnet&#xff0c;方法简单自行百度&#xff1…

小米平板2可以装鸿蒙系统,详细教程!教你小米平板2轻松刷Win10

众所周知&#xff0c;小米平板2拥有MIUI和Windows 10两个版本&#xff0c;这两个版本在硬件上是一致的(除了机身存储空间不同)&#xff0c;所以理论上存在通刷的可能。 现在&#xff0c;有网友在MIUI论坛中共享了小米平板2刷Windows 10的教程&#xff0c;有兴趣的不妨一起来看看…

win10 下载

win10 下载 https://www.microsoft.com/zh-cn/software-download/windows10 Windows 10 2022 更新 l 版本 22H2 选择版本 以下 Windows 10 版本对于 Windows 10 家庭版和 Windows 10 专业版都有效。 如果您想验证下载数据的完整性和真实性&#xff0c;请按照以下步骤操作&…

计算机连接小米usb驱动,win10系统安装小米usb驱动的详细步骤

随着电脑的使用率越来越高&#xff0c;我们有时候可能会遇到对win10系统安装小米usb驱动进行设置&#xff0c;如果我们需要对win7系统安装小米usb驱动进行设置时&#xff0c;要怎么处理win10系统安装小米usb驱动的设置方法非常简单。 设置方法&#xff1a; 1、首先先下载小米驱…

win10 android 手机驱动下载,小米手机驱动win10驱动

小米手机usb驱动win10驱动是Win10系统专用的小米手机USB连接驱动&#xff0c;Win10电脑想要通过USB数据线与小米手机连接&#xff0c;必需安装这个驱动&#xff0c;从而可以使用电脑管理手机中的文件&#xff0c;以及进行线刷、解锁等操作&#xff0c;支持32位以及64位的Win10系…

【日常技巧】小米手机投屏至win10笔记本

最近需要多次实现自己手机与电脑的投屏&#xff0c;却又不想安装其他第三方软件&#xff0c;最终找到方法&#xff0c;做以下记录。 系统说明 手机&#xff1a;MIUI12.0.2稳定版 电脑&#xff1a;win10 前提条件 手机与电脑同处于同一wifi下 操作步骤 1.打开win10电脑投屏…

小米笔记本怎么恢复出厂的系统

买了台小米pro笔记本,中途自己重装了一次win10专业版,自己安装系统之后,自然很多电脑自带的软件和功能就没有了,比如Dolby,指纹解锁,正版的win10和office. 之前一直以为小米笔记本里面的软件都是预装在win10里面,只要有原厂的镜像就可以安装了,但是一直没找到.最近刚好系统又出…

小米笔记本pro15.6黑苹果+win10双系统/多系统

基本信息 配置,小米笔记本PRO 15.6 硬盘&#xff1a;杂牌 显卡&#xff1a;MX150/H610 CPU:i7-8550 简介&#xff1a;win10苹果双系统&#xff0c;双硬盘双系统&#xff0c;自带的pm981硬盘以前成功装过一次&#xff0c; 目前已知&#xff1a; MAC时间不同步&#xff08;…

小米pro安装win10系统

一.利用U盘做驱动盘 格式化u盘为NTFS格式官网下载https://www.microsoft.com/zh-cn/software-download/windows10点击立即下载工具 下载完成双击打开--->接受---->下一步---->为另一台电脑创建安装介质---->下一步--->下一步---->下一步---->出现所选U盘…

win10系统小米妙享中心,在手机可搜索到电脑,与之跨屏协作

在体验了小米妙享中心之后&#xff0c;发现非小米笔记本每次投屏不能直接在手机上直接投送到电脑屏幕&#xff0c;而只能在电脑打开手机画面&#xff0c;进行对手机操作&#xff0c;我们进行电脑伪装将我们的电脑变成小米笔记本&#xff0c;之后就可以在小米妙享中心发现我的设…