#include "at32f403a_407.h" #include "ms5192t.h" #include "FreeRTOS.h" #include "task.h" #include "settings_api.h" #include "io_utils.h" #include "spi_common.h" #include "Communication.h" #include #define ADC_GET_STATUS_REG 0x40 // void adc_gpio_init(void) { #if 0 gpio_init_type gpio_initstructure; crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE); gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_initstructure.gpio_pull = GPIO_PULL_NONE; gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT; gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_initstructure.gpio_pins = GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14; gpio_init(GPIOE, &gpio_initstructure); #endif gpio_init_type gpio_initstructure; spi_init_type spi_init_struct; crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE); crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE); gpio_pin_remap_config(SPI4_GMUX_0001, TRUE); // SCK gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_initstructure.gpio_pull = GPIO_PULL_DOWN; gpio_initstructure.gpio_mode = GPIO_MODE_MUX; gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_initstructure.gpio_pins = GPIO_PINS_11; gpio_init(GPIOE, &gpio_initstructure); // MISO gpio_initstructure.gpio_pull = GPIO_PULL_UP; gpio_initstructure.gpio_mode = GPIO_MODE_INPUT; gpio_initstructure.gpio_pins = GPIO_PINS_13; gpio_init(GPIOE, &gpio_initstructure); // MOSI gpio_initstructure.gpio_pull = GPIO_PULL_UP; gpio_initstructure.gpio_mode = GPIO_MODE_MUX; gpio_initstructure.gpio_pins = GPIO_PINS_14; gpio_init(GPIOE, &gpio_initstructure); // CS gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_initstructure.gpio_pull = GPIO_PULL_UP; gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT; gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_initstructure.gpio_pins = GPIO_PINS_12; gpio_init(GPIOE, &gpio_initstructure); MS5192T_CS_HIGH; crm_periph_clock_enable(CRM_SPI4_PERIPH_CLOCK, TRUE); spi_default_para_init(&spi_init_struct); spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX; spi_init_struct.master_slave_mode = SPI_MODE_MASTER; spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_32; //SPI_MCLK_DIV_2; spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB; spi_init_struct.frame_bit_num = SPI_FRAME_8BIT; spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH; spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE; spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE; spi_init(MS5192T_SPI, &spi_init_struct); //spi_hardware_cs_output_enable(SPI3, TRUE); //adc_mosi_to_spi(); spi_enable(MS5192T_SPI, TRUE); } // void adc_mosi_high(void) { gpio_init_type gpio_initstructure; gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_initstructure.gpio_pull = GPIO_PULL_UP; gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT; gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_initstructure.gpio_pins = GPIO_PINS_14; gpio_init(GPIOE, &gpio_initstructure); gpio_bits_set(GPIOE, GPIO_PINS_14); } // void adc_mosi_to_spi(void) { gpio_init_type gpio_initstructure; gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; gpio_initstructure.gpio_pull = GPIO_PULL_UP; gpio_initstructure.gpio_mode = GPIO_MODE_MUX; gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_initstructure.gpio_pins = GPIO_PINS_14; gpio_init(GPIOE, &gpio_initstructure); } // void adc_test(void) { uint8_t tx = 0; uint8_t rx = 0; /* gpio_bits_set(GPIOE, GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14); vTaskDelay(100); gpio_bits_reset(GPIOE, GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14); vTaskDelay(100); */ MS5192T_CS_LOW; adc_mosi_to_spi(); //common_spi_send(MS5192T_SPI, ADC_GET_STATUS_REG); //rx = common_spi_receive(MS5192T_SPI); rx = common_spi_tx_rx(MS5192T_SPI, ADC_GET_STATUS_REG); rx = common_spi_tx_rx(MS5192T_SPI, 0); MS5192T_CS_HIGH; adc_mosi_high(); vTaskDelay(100); }