# HG changeset patch # User jeandet # Date 2013-05-28 22:39:50 # Node ID e6f450090662990ac9277f802b838431040a7551 # Parent 8299696715f87a9a25dc9a0ca4f38af72f0f35ef Fixed one more spi driver bug. diff --git a/examples/N25Q128_test/main.c b/examples/N25Q128_test/main.c --- a/examples/N25Q128_test/main.c +++ b/examples/N25Q128_test/main.c @@ -69,8 +69,8 @@ int main() res[11]='\n'; res[12]='\r'; res[13]=0; - //printf("read: %s",res); - //printf("\n"); + printf("read: %s",res); + printf("\n"); for(int i=0;i<11;i++) { printf("res[%d] = 0x%x\n\r",i,(int)res[i]); diff --git a/lib/src/includes/N25Q128.h b/lib/src/includes/N25Q128.h --- a/lib/src/includes/N25Q128.h +++ b/lib/src/includes/N25Q128.h @@ -35,6 +35,7 @@ typedef struct eepromN25Q128Dev }eepromN25Q128Dev; #define N25Q128_PAGE_SZ 256 +#define N25Q128_CAPACITY_IN_BYTES (1024*1024*16) /*16MB*/ #define N25Q128_READID 0x9E #define N25Q128_READ 0x03 diff --git a/lib/src/stm32f4/SPI/spi.c b/lib/src/stm32f4/SPI/spi.c --- a/lib/src/stm32f4/SPI/spi.c +++ b/lib/src/stm32f4/SPI/spi.c @@ -339,9 +339,10 @@ int spiputw(spi_t spidev,uint16_t data) if((spidev<3)&&(spidev>=0)) { SPI_TypeDef* _dev_ = _spi_dev_table[(int)spidev]; + while(((_dev_->SR & (1<<1)) == 0) ); _dev_->DR = data; - while((_dev_->SR & (1<<7)) == (1<<7)); - return 1; + while(((_dev_->SR & (1<<0)) == 0) ); + return _dev_->DR; } return -1; } @@ -350,9 +351,9 @@ uint16_t spigetw(spi_t spidev) if((spidev<3)&&(spidev>=0)) { SPI_TypeDef* _dev_ = _spi_dev_table[(int)spidev]; - while((_dev_->SR & (1<<7)) == (1<<7)); + while(((_dev_->SR & (1<<1)) == 0) ); _dev_->DR = 0xFFFF; - while(((_dev_->SR & (1<<0)) == 0) || (_dev_->SR & (1<<7)) == (1<<7)); + while(((_dev_->SR & (1<<0)) == 0) ); return _dev_->DR; } return -1;