ATmega328结构框图
AVR 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接与算术逻辑单元 (ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的 CISC 微控制器最高至 10 倍的数据吞吐率。
ATmega328有如下特点: 32K字节的系统内可编程Flash(具有在编程过程中还可以读的能力,即 RWW), 1k 字节 EEPROM, 2K 字节 SRAM,23个通用 I/O 口线, 32 个通用工作寄存器,三个具有比较模式的灵活的定时器/计数器(T/C), 片内/外中断,可编程串行USART,面向字节的两线串行接口,一个SPI串行端口,一个 6 路 10 位 ADC (TQFP 与 MLF 封装的器件具有 8 路 10 位 ADC),具有片内振荡器的可编程看门狗定时器,以及五种可以通过软件选择的省电模式。空闲模式时 CPU 停止工作,而 SRAM、 T/C、 USART、两线串行接口、 SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态; ADC 噪声抑制模式时 CPU 和所有的 I/O 模块停止运行,而异步定时器和 ADC 继续工作,以减少 ADC 转换时的开关噪声; Standby 模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力。SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。
ESP32的DAC函数可以实现真正的模拟输出。
ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。
本文档作为UNO R4 WiFi的技术概览,您将找到一系列资源和指南链接,帮助您开始下一个项目。
Arduino OneButton库是一个用于简化按钮操作的库,它可以轻松地处理按钮的单击、双击和长按等操作。适用于Arduino开发板以及ESP32等其他基于Arduino的开发板。