implement SPI flash chip
This commit is contained in:
@@ -90,16 +90,6 @@ void SPI_0_PORT_init(void) {
|
||||
gpio_set_pin_direction(A1, GPIO_DIRECTION_OUT);
|
||||
|
||||
gpio_set_pin_function(A1, PINMUX_PB01C_SERCOM3_PAD3);
|
||||
|
||||
gpio_set_pin_level(A3,
|
||||
// <y> Initial level
|
||||
// <id> pad_initial_level
|
||||
// <false"> Low
|
||||
// <true"> High
|
||||
true);
|
||||
|
||||
// Set pin direction to output
|
||||
gpio_set_pin_direction(A3, GPIO_DIRECTION_OUT);
|
||||
}
|
||||
|
||||
void SPI_0_CLOCK_init(void) {
|
||||
|
||||
@@ -37,10 +37,18 @@ void watch_disable_spi(void) {
|
||||
spi_io = NULL;
|
||||
}
|
||||
|
||||
void watch_spi_send(uint8_t *buf, uint16_t length) {
|
||||
io_write(spi_io, buf, length);
|
||||
bool watch_spi_write(const uint8_t *buf, uint16_t length) {
|
||||
return !!io_write(spi_io, buf, length);
|
||||
}
|
||||
|
||||
void watch_spi_receive(uint8_t *buf, uint16_t length) {
|
||||
io_read(spi_io, buf, length);
|
||||
bool watch_spi_read(uint8_t *buf, uint16_t length) {
|
||||
return !!io_read(spi_io, buf, length);
|
||||
}
|
||||
|
||||
bool watch_spi_transfer(const uint8_t *data_out, uint8_t *data_in, uint16_t length) {
|
||||
struct spi_xfer xfer;
|
||||
xfer.txbuf = (uint8_t *)data_out;
|
||||
xfer.rxbuf = data_in;
|
||||
xfer.size = length;
|
||||
return !!spi_m_sync_transfer(&SPI_0, &xfer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user