arduino - pinMode参数1的确定 - 以arduino nano every核心板为例
文章目录
- arduino - pinMode参数1的确定 - 以arduino nano every核心板为例
- 概述
- 笔记
- pins_arduino.h
- ABX00028-datasheet.pdf
- 简单的辨认管脚号就照ABX00028-datasheet.pdf来
- END
arduino - pinMode参数1的确定 - 以arduino nano every核心板为例
概述
arduino nano every的核心板使用的MCU为ATMega4809
在看一个工程(基于arduino nano every核心板), 在初始化代码中看到了很多 pinMode(x, x); e.g. pinMode(2, OUTPUT);
突然懵逼了… 到底是在初始化核心板哪个引出的引脚呢? 如果分不清操作的是哪个管脚, 就无法将工程实现和使用核心板的原理图一一对应.
假设要在核心板的数字IO上点亮一个灯, 或者用数字IO模拟串口发送一些数据(节省成本), 可能要初始化20个数字IO(就是模拟20个串口发送), 如果整错了, 都不知道操作的哪个引脚…
要先确定是核心板哪个引出管脚是哪个pin数字, 才可能正确初始化指定的pin数字为输出模式.
arduino库是经过封装的, 同一个函数(e.g. pinMode), 名称一样, 但是选不同核心板时, 是不同的实现(这就是封装).
而且基于arduino nano every的工程是不支持单步的. 所以想进基于arduino nano every的pinMode实现去看看, 这个参数1(管脚号码)是怎么使用的, 是不可能的.
即使使用能单步调试的arduino核心板(e.g. arduino zero)工程, 即使单步或转到pinMode的实现, 也是arduino zero的实现, 不是arduino nano every的实现.
看不到基于arduino nano every的工程库实现, 有点为难.
在arduinoIDE相关的目录中, 找到了 C:\Users\me\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\variants\nona4809\pins_arduino.h
再结合ABX00028-datasheet.pdf中的核心板引脚导出图, 这才明白.
笔记
pins_arduino.h
C:\Users\me\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\variants\nona4809\pins_arduino.h
// On the Arduino board, digital pins are also used
// for the analog output (software PWM). Analog input
// pins are a separate set.// ATMEGA4809 / ARDUINO
//
// (SCL)(SDA) (7) (2) (R) (3~) (6~)
// PA4 PA3 PA2 PA1 PA0 GND VDD UPDI PF6 PF5 PF4 PF3
//
// 48 47 46 45 44 43 42 41 40 39 38 37
// + ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ +
// PA5 1| |36 PF2
// PA6 2| |35 PF1 (TOSC2)
// PA7 3| |34 PF0 (TOSC1)
// (9~) PB0 4| |33 PE3 (8)
// (10~) PB1 5| |32 PE2 (13)
// (5~) PB2 6| |31 PE1 (12)
// PB3 7| 48pin QFN |30 PE0 (11~)
// (Tx) PB4 8| |29 GND
// (Rx) PB5 9| |28 AVDD
// PC0 10| |27 PD7 (VREF)
// PC1 11| |26 PD6
// PC2 12| |25 PD5 (A5)
// + ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ +
// 13 14 15 16 17 18 19 20 21 22 23 24
//
// PC3 VDD GND PC4 PC5 PC6 PC7 PD0 PD1 PD2 PD3 PD4
// (1) (0) (4) (A0) (A1) (A2) (A3) (A4)//const uint8_t digital_pin_to_port[] = {PC, // 0 PC5/USART1_RxPC, // 1 PC4/USART1_TxPA, // 2 PA0PF, // 3 PF5PC, // 4 PC6PB, // 5 PB2PF, // 6 PF4PA, // 7 PA1PE, // 8 PE3PB, // 9 PB0PB, // 10 PB1PE, // 11 PE0PE, // 12 PE1PE, // 13 PE2PD, // 14 PD3/AI3PD, // 15 PD2/AI2PD, // 16 PD1/AI1PD, // 17 PD0/AI0PF, // 18 PF2/AI12PF, // 19 PF3/AI13PD, // 20 PD4/AI4PD, // 21 PD5/AI5PA, // 22 PA2/TWI_SDAPA, // 23 PA3/TWI_SCLPB, // 24 PB5/USART3_RxPB, // 25 PB4/USART3_Tx
};
上面的摘录, 可以看出从MCU侧, 看到的引脚号码. 但是这个要和核心板引出的管脚对应的话, 就需要看数据表. 因为我们要操作的数字IO, 是核心板引出的管脚, 如果只看MCU侧, 看不明白.
ABX00028-datasheet.pdf
红色的Dx和~Dx, 就是数字IO(只能赋值为0和1的引脚),
D2就说明数字IO编号为2, 对照 pins_arduino.h 如下
~D9就说明数字IO为9, 对照 pins_arduino.h 如下
简单的辨认管脚号就照ABX00028-datasheet.pdf来
如果要操作核心板引出的哪根数字IO, 就可以对照ABX00028-datasheet.pdf中的6 Connector Pinouts中带的核心板引脚导出图中的Dx, ~Dx带的数字来确认pinMode的参数1该填哪个数字.
假设核心板D2引脚要初始化为输出, 引脚号就是2, 就调用 pinMode(2, OUTPUT);
假设核心板~D10引脚要初始化为输出, 引脚号就是10, 就调用 pinMode(10, OUTPUT);
END
arduino - pinMode参数1的确定 - 以arduino nano every核心板为例相关推荐
- Arduino基础篇(一)-- 打开Arduino的大门
文章目录 1 什么是Arduino 2 为什么选择Arduino作为开发平台 3 Arduino硬件 3.1 Arduino开发板的类型 3.2 不同开发板的对比 4 Arduino软件 4.1 ID ...
- python和arduino哪个好_基于Python和Arduino的智能花盆系统
基于 Python 和 Arduino 的智能花盆系统 杨吉云 YANG Ji-yun :徐乾淏 XU Qian-hao :沈莲 SHEN Lian :章晓敏 ZHANG Xiao-min [摘 要] ...
- arduino智能浇花系统_基于Arduino单片机的智能浇花器
Internal Combustion Engine & Parts • 119 • 基于Arduino单片机的智能淺花器 卞 云 松 ;张 国 祥 ;任 佳 豪 :陆晨雨 (江海职业技术学院 ...
- arduino与hcsr04_超声波传感器HC-SR04和Arduino进行距离计算
在本教程中,将使用Ultra Sonic HC-SR04和Arduino(Arduino UNO)构建物联网项目,以计算Ultra Sonic HC-SR04设备与物体之间的距离.在这个项目中,我们将 ...
- arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来
步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...
- arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...
微信关注 "DLGG创客DIY"设为"星标",重磅干货,第一时间送达. arduino特点库超多,想必大家都领教了,今天来分享一下之前玩过的TRMpcm库. 这 ...
- 《Arduino实战》——第1章 你好Arduino
本节书摘来异步社区<Arduino实战>一书中的第1章,作者:[美]Martin Evans ,Joshua Noble ,Jordan Hochenbaum,更多章节内容可以访问云栖社区 ...
- 【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用
微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. arduino特点库超多,想必大家都领教了,今天来分享一下之前玩过的TRMpcm库. ...
- Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法
Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法 首先,我们来看一下Arduino UNO开发板的具体引脚排列,如下图所示, 再了解一下三色RGB LED模块,如下图所示 ...
最新文章
- DSP unresolved symbol问题的解决
- 线性代数 第三章 矩阵的初等变换与线性方程组
- 算术表达式字符串求值
- [2017.3.23]Miller-Rabin
- outlook两个账号怎么分开存储邮件
- 推荐--jQuery使用手册
- MFCC/Filter Bank的提取流程
- 机器学习中的两个概率模型
- excel2003和excel2007文件的创建和读取
- 2021 年“认证杯”数学中国数学建模网络挑战赛 B题
- 144.绘制布朗运动曲线
- 公关广告策略分析:如何结合广告的推力和公关的拉力
- 数据可视化技术有什么特点
- 2015年动漫电影观影指南值得收藏
- 共线条件方程及其应用
- itools android玩游戏,itools安卓模拟器电脑版
- element-plus 更换主题色
- 是非人生——一个菜鸟程序员的5年人生路
- Linux---Apache网页优化---网页压缩
- 字符串到字节数组和字节数组到字符串的转换(编码和解码问题)