Цитата(jukebox @ Apr 7 2015, 09:52)

хорошо,попробую.Непонятно, если я запишу 10 байт, то как их считать?В даташите написано: команда 3;2 байта адр;и дальше читаем данные.Как читаются данные - непонятен принцип действия.Вроде мастер должен чтото запихивать чтобы чтото получить от РАМки?
общий алгоритм такой
Код
void Write(uint32_t address, uint32_t lenght, uint8_t *buffer)
{
// Note!!!Every write operation demands a write enable!!!
//SPI_CSlow();
//SPI_SendByte(SPIEEPROM_CMD_WREN);
//SPI_CShigh();
// start write
SPI_CSlow();
// send write command
SPI_SendByte(SPIEEPROM_CMD_WRITE);
// send address
SPI_SendByte(address>>8);
SPI_SendByte(address&0x00FF);
while(lenght--)
{
// send data to be written
SPI_SendByte(*buffer++);
}
// stop write
SPI_CShigh();
}
void Read(uint32_t address, uint32_t lenght, uint8_t *buffer)
{
if(lenght>PAGE_SIZE)
return 0;
uint32_t data;
// start read
SPI_CSlow();
// send command
SPI_SendByte(SPIEEPROM_CMD_READ);
// send address
SPI_SendByte(address>>8);
SPI_SendByte(address&0x00FF);
// read contents of memory address
while(lenght--)
{
data = SPI_TransferByte(0x00);
*buffer++ = data;
}
// stop read
SPI_CShigh();
}