以下所有的知识全部针对AVR讲解,8 位单片机架构/产品家族 ,由 Atmel (现归 Microchip )。它以“简洁高效、上手容易、5V 友好”闻名,Arduino Uno 用的 ATmega328P 就是典型的 AVR 芯片。

核心特点:

DDR/PORT/PIN:

DDRx(Data Direction Register):

_BV(x) 是宏:#define _BV(x) (1U << (x)),生成指定位的掩码。

PORTx(Port Data Register)

PINx(Port Input Pins Register):

// 读 PB2 的实际电平
uint8_t level = (PINB & _BV(PB2)) ? 1 : 0;

// 翻转 PB3(已是输出)
PINB = _BV(PB3);           // AVR: 写 1 到 PINB 的 PB3 位 -> 翻转 PORTB.PB3
// 或者更通用:
PORTB ^= _BV(PB3);

其实这部分没搞太懂,存疑?