|
@@ -140,27 +140,33 @@ spi_status_t spi_read() {
|
|
}
|
|
}
|
|
|
|
|
|
spi_status_t spi_transmit(const uint8_t *data, uint16_t length) {
|
|
spi_status_t spi_transmit(const uint8_t *data, uint16_t length) {
|
|
- spi_status_t status = SPI_STATUS_ERROR;
|
|
|
|
|
|
+ spi_status_t status;
|
|
|
|
|
|
for (uint16_t i = 0; i < length; i++) {
|
|
for (uint16_t i = 0; i < length; i++) {
|
|
status = spi_write(data[i]);
|
|
status = spi_write(data[i]);
|
|
|
|
+
|
|
|
|
+ if (status < 0) {
|
|
|
|
+ return status;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- return status;
|
|
|
|
|
|
+ return SPI_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
spi_status_t spi_receive(uint8_t *data, uint16_t length) {
|
|
spi_status_t spi_receive(uint8_t *data, uint16_t length) {
|
|
- spi_status_t status = SPI_STATUS_ERROR;
|
|
|
|
|
|
+ spi_status_t status;
|
|
|
|
|
|
for (uint16_t i = 0; i < length; i++) {
|
|
for (uint16_t i = 0; i < length; i++) {
|
|
status = spi_read();
|
|
status = spi_read();
|
|
|
|
|
|
- if (status > 0) {
|
|
|
|
|
|
+ if (status >= 0) {
|
|
data[i] = status;
|
|
data[i] = status;
|
|
|
|
+ } else {
|
|
|
|
+ return status;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- return (status < 0) ? status : SPI_STATUS_SUCCESS;
|
|
|
|
|
|
+ return SPI_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
void spi_stop(void) {
|
|
void spi_stop(void) {
|