Arduino Nano你没有经历过的坑

大部分玩 arduino 的朋友,都还是从 uno板子上开始玩,而这些板子的共性,就是都是用了 dip(直插)28 脚封转的主芯片。而转为 nano 的话,其实芯片核心并没有变化,但是封装从 dip28 改为 tqfp32,兼容版的uno用的和nano版是同样的芯片,软件方面都不需要变动,程序都是通用的。硬件方面又有什么不同呢?32 – 28 = 4,多了4个引脚。
如上图,多了 vcc 和 gnd,没什么好说,而多的 adc6 和 adc7,就是是之前 dip 封转的芯片所没有的东西了,为了兼容uno原版,兼容版这两个引脚也是没有引出的,而在 nano 中是把这2个adc引脚引出来了。
上图很明显,在a6,a7引脚上有个红色的惊叹号,说明需要我们注意,大家注意看datasheet中的管脚定义,就会发现这 adc6 和 adc7 实际上和 adc0-adc5 是不太一样的。adc0-adc5 其实是作为 pc0-pc5 的第二功能存在的,分别对应 arduino 定义 a0-a5。也正因为次,在arduino 的官方指南中提到,“the analog input pins can be used as digital pins, referred to as a0, a1, etc. ”。说的是,模拟输入口可以当数字口一样用。对于a0-a5来说,确实不错。但对于第一功能就是adc(模数转换)而不兼有普通 io 口功能的 adc6 和 adc7 来说。这句话就要打折扣了。a6 和 a7 只能作为模拟输入使用,不要把它当成 类似于 pc pb 这样的 io口去使用。
而且,这本并不是 arduino 内核的问题,而是硬件本身的设计就是这个样子。a6 和 a7 确少作为 标准io口 所需的必要硬件配置。
实测中确实是这样,在 a6、a7 引脚上,想运行 blink 例程,使用 pinmode(a6, output),digitalwrite(a6, high) 都不会得到你所需要的效果。更崩溃的是,你可能改变了芯片内部你原本不想改变的寄存器配置,没准会有诡异意外发生。玩 nano,或者是贴片avr的 arduino 朋友们,可要注意。
总结来说,就是在nano版中,a6,a7只能用作adc转换用,而不能用作数字口来使用。

基于TMS320DM642和EPM240芯片实现图像采集与处理系统的设计
MQTT I/O模块:锂电池生产过程的智能监控与管理利器
彩电行业的市场化大洗牌正在全面开启 狭路相逢唯勇者胜
小米6配置全曝光 小米6配置详解
生物识别在支付领域起到了什么作用,是否有可行性
Arduino Nano你没有经历过的坑
国产操作系统百家争鸣
温度测量系统的设计应用对模数转换器有哪些性能要求
自制收音机之教你制作一台FM收音机
耐能AI芯片震撼发布 实现3D人工智能方案
EXAR发布四通道输出可编程电源管理系统-XRP7724
中兴安全手机通过公安部智能手机型移动警务终端权威检测
电池使用保养的五个误区
AI决策影响人类 必须尽快进行修正
智慧厕所镜面显示屏的应用将如何颠覆传统广告传播
如何使用OpenCV进行活性检测
特斯拉定价新策略,能否实现扭亏为盈?
电路的三种状态
FitbitInspireHR智能手环评测 对运动和健康有专业刚性要求的用户更具有吸引力
飞腾云计算联合实验室推动构建基于飞腾芯片产品的云计算软件生态
s