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;
}
CM3计算板I/O编程相关推荐
- CM3计算板RTC闹钟唤醒系统
1.前言 一个周期性控制系统的核心为CM3计算板,在电池供电情况下要求尽可能提高使用时长.由于系统空闲时长较多,因此在考虑低功耗的情况下将系统关机以进一步降低功耗.需要注意的是,系统关机后需要在指定时 ...
- CM3计算板安装硬件时钟DS3231
1.硬件连接 DS3231是高速(400kHz)I2C接口的实时时钟芯片,0°C至+40°C范围内精度为±2ppm,-40°C至+85°C范围内精度为±3.5ppm,工作电压3.3V,提供电池备份,具 ...
- CM3计算板读取SHT30以及I2C驱动
1.引言 用SHT30测温湿度,SHT30是I2C通信总线,具体信息去看Datasheet文档:https://pdf1.alldatasheet.com/datasheet-pdf/view/897 ...
- 无线网络共享到CM3计算板调试时 connect: Network is unreachable
1.问题描述 硬件连接:电脑(有线+无线) <--有线--> CM计算板(或其他Linux), 端口:电脑共享的有线网口 192.168.137.1 , CM3配置静态IP 192.16 ...
- CM3计算板EC20模组拨号上网
1.安装 ppp 安装ppp:sudo apt-get install ppp 2.配置路由 查看路由和网卡 ifconfig ; route -n 增加路由设备: sudo route add d ...
- STM32F103固件库编程:关于core_cm3.c的错误
STM32F103固件库编程:关于core_cm3.c的错误. 解决方法有两种: 1.直接删除固件库中的core_cm3.c文件,keil已有替代文件. 2.ARM编译器版本从6,改回到5. 提示错误 ...
- 故障恢复 stm32_硬件编程:77条STM32知识汇总
1. SYSCLK时钟源有三个来源:HSI RC.HSE OSC.PLL2. MCO[2:0]可以提供4不同的时钟同步信号,PA83. GPIO口貌似有两个反向串联的二极管用作钳位二极管.4. ...
- 硬件编程:77条STM32知识汇总
1. SYSCLK时钟源有三个来源:HSI RC.HSE OSC.PLL 2. MCO[2:0]可以提供4不同的时钟同步信号,PA8 3. GPIO口貌似有两个反向串联的二极管用作钳位二极管. ...
- 可编程led灯带原理_SCPSD-250-04-27派克真空压力传感器故障和工作原理
SCPSD-250-04-27派克PARKER真空压力传感器故障和工作原理 PARKER压力开关现货 PARKER压力传感器特价 派克真空压力传感器 PARKER数字压力开关 2020年还剩 ...
最新文章
- SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践)
- int*与(int*)的差别
- c语言中的break和continue
- 没有varselect这个函数_C++的虚函数,虚析构函数,纯虚函数
- 在C ++中检查一个数组是否是另一个数组的子数组
- android --- fastboot 协议学习
- 在不同浏览器都实用的各窗口大小获取方法
- php栏目一二级排序,灵动标签完美实现当前栏目高亮-支持二级栏目及内容页及栏目排序...
- Pormetheus(普罗米修斯) 采用blackbox_exporter实现监控
- hadoop--环境搭建--域名解析失败
- 干货!探索单目车辆估计中的中间几何表示
- 2019 中国AI/ MR十大新闻:梦想照进现实!
- html5把六张图片做成立方体,一篇文章教会你利用html5和css3实现3D立方体效果图...
- 数据库中间件 MyCAT源码分析 —— XA分布式事务
- Playful Bunny
- [野火]一种Cortex-M内核中的精确延时方法-ns级别-DWT
- 基于conga实现RHCS简单部署
- 十三届蓝桥杯单片机组省赛真题程序解析
- 【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
- 纹章之谜一人攻略——英雄战争篇
热门文章
- string.Empty 和 并不总是可以互换的
- matlab 处理dat文件画图,matlab_DAT_processing matlab处理dat文件并进行绘图 - 下载 - 搜珍网...
- 安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案
- matlab 万能,matlab 万能实用的线性曲线拟合方法
- mysql索引引擎_mysql搜索引擎和索引那些事
- mysql中char,varchar与text类型的区别和选用
- 机器学习实战 | SKLearn最全应用指南
- Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)
- python基础-类
- 在C语言中巧用正则表达式