Skip to content

Commit a806237

Browse files
authored
Merge pull request #11660 from shuopeng-deng/pr/spi-transfer-fix
Fix dropped bytes on spi write
2 parents b54315e + 9f03a1c commit a806237

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

targets/TARGET_Cypress/TARGET_PSOC6/cy_spi_api.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,12 @@ void spi_frequency(spi_t *obj, int hz)
130130
int spi_master_write(spi_t *obj, int value)
131131
{
132132
struct spi_s *spi = cy_get_spi(obj);
133-
uint32_t received;
134-
if (CY_RSLT_SUCCESS != cyhal_spi_send(&(spi->hal_spi), (uint32_t)value)) {
135-
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_SPI, MBED_ERROR_CODE_FAILED_OPERATION), "cyhal_spi_send");
136-
}
137-
if (CY_RSLT_SUCCESS != cyhal_spi_recv(&(spi->hal_spi), &received)) {
138-
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_SPI, MBED_ERROR_CODE_FAILED_OPERATION), "cyhal_spi_recv");
133+
int received;
134+
135+
if (CY_RSLT_SUCCESS != cyhal_spi_transfer(&(spi->hal_spi), (const uint8_t *)&value, 1, (uint8_t *)&received, 1, 0xff)) {
136+
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_SPI, MBED_ERROR_CODE_FAILED_OPERATION), "cyhal_spi_transfer");
139137
}
140-
return (int)received;
138+
return received;
141139
}
142140

143141
int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, char write_fill)

0 commit comments

Comments
 (0)