CM3计算板I/O编程

1、CM3计算板的IO资源

CM3支持的I/O管脚数为54个,每个管脚包括一个或多个复用功能,分别位于ALT0~ALT5,如下表:

2、设备树启用IO外设的方式

通过在/boot/config.txt 文件中描述IO行为,可以在系统启动时,初始化IO外设的初始状态,例如,配置为输入输出、上下拉状态以及复选功能。

The gpio directive allows GPIO pins to be set to specific modes and values at boot time in a way that would previously have needed a custom dt-blob.bin file. Each line applies the same settings (or at least makes the same changes) to a set of pins, either a single pin (3), a range of pins (3-4), or a comma-separated list of either (3-4,6,8). The pin set is followed by an = and one or more comma-separated attributes from this list:

  • ip - Input
  • op - Output
  • a0-a5 - Alt0-Alt5
  • dh - Driving high (for outputs)
  • dl - Driving low (for outputs)
  • pu - Pull up
  • pd - Pull down
  • pn/np - No pull

例如:

# 选择 复用功能2 Alt2 GPIO0~GPIO27
gpio=0-27=a2# 设置GPIO12 输出拉高
gpio=12=op,dh# 设置GPIO18 20 为输入上拉
gpio=18,20=pu# 设置GPIO17~GPIO21 为输入
gpio=17-21=ip

3、使用wiringPi C库对IO编程

  • 安装最新wiringPi,安装方法见:安装wiringPi  
  • 使用gpio readall 查看是否读取到CM3的所有IO。
  • 编程示例:CM3 GPIO27交替拉高拉低。
  • 编译: gcc -c testGPIO3.c -o run -l wiringPi
  • 执行:./run
#include <wiringPi.h>#define TEST_PIN    27int main(void)
{wiringPiSetup();pinMode(TEST_PIN, OUTPUT);while(1){digitalWrite(TEST_PIN, HIGH);delay(1000);digitalWrite(TEST_PIN, LOW);delay(1000);}return 0;
}

 

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

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

相关文章

Apt-get使用指南

From: http://bbs.chinaunix.net/thread-2115236-1-1.html 命令 下面将要介绍的所有命令都需要sudo&#xff01;使用时请将“packagename”和“string”替换成您想要安装或者查找的程序。 apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行…

[react] 在JSX中如何写注释?

[react] 在JSX中如何写注释&#xff1f; {/* A JSX comment */} 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

重构:改善既有代码的设计(评注版) 评注者序

重构&#xff1a;改善既有代码的设计&#xff08;评注版&#xff09; 评注者序评注者序近十年来&#xff0c;若要讨论如何改进代码的质量&#xff0c;很难绕过Martin Fowler的这本经典著作。这本书已经影响了几代程序员&#xff0c;或许会持续不断地影响未来的一批程序员。遗憾…

BusyBox编译配置

1. 下载Busybox tar包&#xff0c;如busybox-1.23.0.tar.bz2。 官网&#xff1a;http://www.busybox.net/ 2. make distclean&#xff1b;清除原有配置 make menuconfig; 配置命令选项 make&#xff1b;编译 make install&#xff1b;安装编译文件&#xff0c;主要为bin, s…

python类型转换、数值操作

From: http://canofy.iteye.com/blog/298263 python类型转换 Java代码 函数 描述 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]…

串口字符传输时间计算

1、字符时间 串口字符发送时间可根据串口参数配置计算&#xff0c;计算示例如下&#xff1a; e.g.1. 固定起始位1位&#xff0c;数据位8位&#xff0c;奇校验位1位&#xff0c;停止位1位&#xff0c;波特率9600bps&#xff0c;计算单个字符传输时间为&#xff1a; &#xff…

[react] React什么是有状态组件?

[react] React什么是有状态组件&#xff1f; 有状态的组件总是一个类组件,并且拥有一个在构造函数中初始化的state 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题…

Bloomfilter 的应用场景

Bloomfilter 一般用于检测某元素是否在集合中存在&#xff0c;它的目标是解决在大数据量情况的元素判定。它的优点是它提供的数据结构具有非常高的时间查询和空间存储效率&#xff0c;缺点是可能造成误判&#xff0c;就是说&#xff0c;它判定某元素在集合中&#xff0c;但是其…

运放搭建的窗口电压比较器电路

1、窗口比较器 设输入电压为Vin&#xff0c;输入范围为&#xff08;-V1~V2&#xff09;&#xff0c;要求设计电路识别输入是否在给定的电压区间&#xff08;Vd~Vt&#xff09;。 可以设计为一个电压窗口比较电路&#xff0c;窗口电压VwVsδ&#xff0c;Vs为窗口基准电压&…

ImageView倒影效果

先看下效果图&#xff1a;import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphi…

在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别

转自&#xff1a;http://blog.csdn.net/zoohouse/article/details/7552594 概述&#xff1a; “刷新”是在你现有页面的基础上&#xff0c;检查网页是否有更新的内容。在检查时&#xff0c;会保留之前的一些变量的值&#xff0c;因此有可能会造成刷新后网页出现错误&#xff0c…

[react] 为什么建议Fragment包裹元素?它的简写是什么?

[react] 为什么建议Fragment包裹元素&#xff1f;它的简写是什么&#xff1f; 为一个组件添加多个元素,可以讲你的子组件列表添加到一个分组中(<></>),并且不会再DOM增加额外节点 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&…

uboot开机logo

From: http://blog.chinaunix.net/uid-9688646-id-1998453.html 参考资料&#xff1a; 【1】U-boot开机logo的制作方法&#xff08;Tekkaman Ninja&#xff09;&#xff1a;http://blog.chinaunix.net/u1/34474/showart_2085233.html 【2】U-Boot中的Splash Screen&#xff0…

USB连接TF卡 SD卡硬件电路

1、电路芯片 TF卡芯片选择&#xff1a;GL823K。USB2.0 SD/MMC闪存读卡器单芯片。支持USB2.0高速传输&#xff0c;并符合通用串行总线规范。 它的引脚设计适合卡插口提供更容易的PCB布局。 TF卡防静电芯片&#xff1a;SMF05C。 2、电路 分享实际项目中用到的接口电路&#…

R语言-Kindle特价书爬榜示例 输出HTML小技巧

20170209更新&#xff1a; 根据回复提示&#xff0c;rvest包更新&#xff0c;原用函数html作废&#xff0c;需改用read_html 并后续amazon网页改版等 因此此文章代码失效&#xff01;各位可看评论内容了解详情 等以后有空再重写一遍代码&#xff0c;抱歉。果然代码还是放在gith…

【原创】指针和下标的10条对比

【原创】指针和下标的10条对比摘要&#xff1a;在编程语言中&#xff0c;指针和下标都是访问数据的有效手段&#xff0c;本文以C/C语言为例&#xff0c;讲解它们之间的区别。要想完全理解本文&#xff0c;读者可能需要&#xff1a;1.至少熟悉一门含有指针和下标语义的编程语言值…

[react] constructor和getInitialState有不同?

[react] constructor和getInitialState有不同&#xff1f; constructor用在class组件中getInitialState用在createReactClass实现的组件中 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与…

求数组中数对的最大值

题目&#xff1a; 在数组中&#xff0c;每个数字减去它右边的所有数字得到一个数对之差。求所有数对之差的最大值。 例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中&#xff0c;数对之差的最大值是9&#xff0c;是16减去5的结果。 分析&#xff1a; 要使 a-b要最大&#xff0c;只有…

工业RS485接口电路设计

1、电路芯片 485芯片有很多种&#xff0c;项目中用的比较多的是高速SP3485。满足RS-485和RS-422串行协议的要求&#xff0c;兼容工业标准规范&#xff0c;数据传输速率可高达10Mbps&#xff08;带负载&#xff09;。 2、工业设计 485需要做防雷考虑、瞬态过电压抑制、阻抗匹配…

读《大道至简》有感

编程序从一开始到现在给我是“斩不断&#xff0c;理还乱”的感觉&#xff0c;有时候真的对着一个程序一点头绪都没有&#xff0c;不知该如何下手。 在两千年前的寓言故事《愚公移山》中&#xff0c;已在无形中成就了一名工程师&#xff1a;愚公。他在移山之前都有详细的计划&am…