在《深入浅出ARM7LPC213x》上册的SPI主机实验中初始化接口代码如下: void MSPI_Init(void) { SPCCR = 0x52; // 设置SPI时钟分频 SPCR = (0 << 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采样 (1 << 4) | // CPOL = 1, SCK 为低有效 (1 << 5) | // MSTR = 1, SPI 处于主模式 (0 << 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先 (0 << 7); // SPIE = 0, SPI 中断被禁止 }
请问SPI时钟分频设置为0x52的依据是什么? 而在《深入浅出ARM7LPC213x》下册的SPI初始化如下: uint8 SPIInit(uint8 Fdiv) {
SPI_SPCCR = Fdiv & 0xfe; /* 分频值 */ SPI_SPCR = 0xa0 | SPI_MOD; /* 主机、允许中断 */ } 这里的分频值设为0x80 & 0xfe,不同于上册的0x52,且SPCR的设置也不同于上册,ZLG大侠能否解释下?
|