SD卡不同通信方式时的信号线
模拟 SPI 通信
这里需要注意的是 GPIO 是否有被复用,或被其他任务占用。
SPI 通信模式有四种,分别是 CPOL(时钟极性) 和 CPHA(时钟相位) 为 0 和 1 的情况
在维基百科有张图将这四种情况很好的表现出来了
时钟是循环的,每个时钟可以分为上升沿和下降沿,数据在哪个边沿采样就是由 CPHA 决定;时钟在空闲时保持的电平状态就是由 CPOL 决定
CPHA=1 CPOL=1 对应的代码如下:
u8 spi_read_byte(void)
{
u8 ret = 0;
u8 i;
for (i=0; i<8; i++)
{
SD_CLK_OUT_L();
delay_us(DELAY);
SD_CLK_OUT_H();
ret = (ret << 1) | ((S