Fix error handling in SPI master. (#11122)
Co-authored-by: Dimitris Papavasiliou <dpapavas@gmail.com>
This commit is contained in:
		
							parent
							
								
									54b932e844
								
							
						
					
					
						commit
						5cf70f3993
					
				
					 1 changed files with 11 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -140,27 +140,33 @@ spi_status_t spi_read() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
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++) {
 | 
			
		||||
        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 status = SPI_STATUS_ERROR;
 | 
			
		||||
    spi_status_t status;
 | 
			
		||||
 | 
			
		||||
    for (uint16_t i = 0; i < length; i++) {
 | 
			
		||||
        status = spi_read();
 | 
			
		||||
 | 
			
		||||
        if (status > 0) {
 | 
			
		||||
        if (status >= 0) {
 | 
			
		||||
            data[i] = status;
 | 
			
		||||
        } else {
 | 
			
		||||
            return status;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return (status < 0) ? status : SPI_STATUS_SUCCESS;
 | 
			
		||||
    return SPI_STATUS_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void spi_stop(void) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue