新手上路
- 积分
- 47
- 金钱
- 47
- 注册时间
- 2019-11-26
- 在线时间
- 9 小时
|
u8 SPIx_FLASH_SendByte(u8 byte)
{
uint8_t i;
u8 Temp=0x00;
unsigned char SDI;
//SPI_CS_L;
myDelay_us(40);//
for (i = 0; i < 8; i++)
{
SPI_SCLK_L;
if (byte&0x80)
SPI_MOSI_H;
else
SPI_MOSI_L;
byte <<= 1;
myDelay_us(40);
SPI_SCLK_H;
Temp<<=1;
if(SPI_MISO)
Temp|=1;
myDelay_us(40);//
}
SPI_SCLK_H; //à-¸ß SPI_SCK
//SPI_CS_H;
return Temp;
}
// cpol=1 cpha=1 其他的就是一个时序问题。
这里面唯一要注意的是 千万不要在 这函数中去操作片选。因为很多SPI 在连着写命令和读取数据时 是连续的 ,片选也一直是低。所以不能在单独读写一个字节的时候 去操作片选,我尝试在进入之前拉低片选,结束时拉高,但是这样读不到数据。共勉吧。我也是被这小问题 折磨了一天。
|
|