[我正在使用Arduino Uno开发板在Atmega328p上工作,我的任务是使用寄存器级的SPI通信,谁能解释DD_MOSI的含义是左移“ 1 <
我假设您正在参考ATmega328p数据表(http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf)第172页的代码示例。在该示例中,它们使用DD_MOSI
作为与MOSI信号关联的引脚的控制位的位位置的代表,该引脚在所讨论的MCU上是PortB [3]。因此,当他们有一行时:
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);
您可以翻译它以填写相关的端口和位移:
DDRB = (1<<DDB3)|(1<<DDB5); // Since SPI in on Port B, MOSI is the third pin and SCK is the 5th pin, see page 91-92