uchar SPI_RW_Reg(uchar reg, uchar value)
{
uchar status;
CSN = 0; // CSN置低,开始传输数据
status = SPI_RW(reg); // 选择寄存器,同时返回状态字
SPI_RW(value); // 然后写数据到该寄存器
CSN = 1; // CSN拉高,结束数据传输
return(status); // 返回状态寄存器
}
这里说的状态字是指??写入寄存器地址时,并返回状态字,这个状态字显然不是寄存器里的值,那么问题来了,这个状态字是什么有什么用??求助…………
uchar SPI_Read(uchar reg)
{
uchar reg_val;
CSN = 0; // CSN置低,开始传输数据
SPI_RW(reg); // 选择寄存器
reg_val = SPI_RW(0); // 然后从该寄存器读数据
CSN = 1; // CSN拉高,结束数据传输
return(reg_val); // 返回寄存器数据
}
标记的语句,主机上MOSI线应该在上升沿全部输出低电平,不会写入从机里已经选择的寄存器么??
也许状态字是指从机工作在哪个状态,发射还是接收?还是掉电等模式?? 第二个问题里 那句语句的意思是从里边读数据并全部将已经选择的寄存器里的值置为0么??这么理解对不?? 新手有不对的 请谅解哈…………
|