How do I program SPI for Raspberry Pi Pico?

Hi, I am relatively new to PlatformIO. I cannot seem to get SPI working for my Raspberry Pi Pico.

Attached is the following code

#include <Arduino.h>
#include <SPI.h>

#define GPIO_MOSI 19
#define GPIO_MISO 16
#define GPIO_SCLK 18
#define GPIO_CS 17
#define GPIO_LE 14
#define GPIO_CE 15

#define SPI_CLOCK_SPEED 1000000

void SPI_Init() {
  Serial.println("Initializing SPI and GPIO...");

  pinMode(GPIO_LE, OUTPUT);
  pinMode(GPIO_CE, OUTPUT);
  digitalWrite(GPIO_LE, HIGH);
  digitalWrite(GPIO_CE, HIGH);

  SPI.begin();
  SPI.beginTransaction(SPISettings(SPI_CLOCK_SPEED, MSBFIRST, SPI_MODE0));

  Serial.println("SPI Initialized");
}

void ADF4351_WriteRegister(uint32_t data) {
  uint8_t tx_buf[4] = {(uint8_t)((data >> 24) & 0xFF),
                       (uint8_t)((data >> 16) & 0xFF),
                       (uint8_t)((data >> 8) & 0xFF), (uint8_t)(data & 0xFF)};

  Serial.print("Writing register: 0x");
  Serial.println(data, HEX);

  digitalWrite(GPIO_LE, LOW);
  delayMicroseconds(1);

  for (int i = 0; i < 4; i++) {
    SPI.transfer(tx_buf<em>);
    Serial.print(" Byte ");
    Serial.print(i);
    Serial.print(": 0x");
    Serial.println(tx_buf<em>, HEX);
  }

  delayMicroseconds(1);
  digitalWrite(GPIO_LE, HIGH);
  delayMicroseconds(10);
}

void ProgramADF4351() {
  const uint32_t registers[6] = {0x00580005, 0x00EC803C, 0x000004B3,
                                 0x00004E42, 0x08008029, 0x00400000};

  Serial.println("\nProgramming ADF4351...");

  for (int i = 5; i >= 0; i--) {
    ADF4351_WriteRegister(registers<em>);
    delay(10);
  }

  Serial.println("Programming complete\n");
}

void setup() {
  Serial.begin(115200);
  while (!Serial);
  delay(1000);

  Serial.println("ADF4351 Programmer Starting...");

  SPI_Init();
  digitalWrite(GPIO_CE, LOW);
  ProgramADF4351();
}

void loop() { delay(1000); }

Any help or advice on this would be greatly appreciated.

So what do you observe? No signal output a tthe SPI pins? Device not working?

You also haven’t shown the platformio.ini.

Strangely enough im getting absolutely no signals at all on my LA no Clock, CS, or Tx.

[env:pico]
platform = raspberrypi
board = pico
framework = arduino
lib_deps = 
    adafruit/Adafruit NeoPixel@^1.12.5
build_flags = 
    -DNEOPIXEL_RP2040_PIO_ENABLE
    -DSPI_HAS_TRANSFER_BUF

; Add serial port configuration
upload_port = COM9
monitor_port = COM9
monitor_speed = 115200