0

我正在使用 Arduino Uno 板开发 Atmega328p,我的任务是使用寄存器级别的 SPI 通信,任何人都可以解释 DD_MOSI 的含义是左移“1<

4

1 回答 1

0

我假设您指的是 ATmega328p 数据表第 172 页上的代码示例(http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS -DS40002061A.pdf)。在示例中,它们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
于 2020-04-22T06:12:20.383 回答