• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

ESP32 HSPI 读写 W25Q128有人试过吗

1553430737@qq.com 2018-02-05 浏览量:3453

rt,esp32 hspi master读写 w25q128,有人试过吗,我写的读设备id从逻辑分析仪上看不对,源码在下面


#include <stdio.h>
#include <stdbool.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/spi_master.h"

#define PIN_NUM_MISO 5
#define PIN_NUM_MOSI 21
#define PIN_NUM_CLK  19
#define PIN_NUM_CS 17


spi_device_handle_t spi;
uint8_t test;

void app_main()
{
  spi_bus_config_t spi_bus=
  {
    .miso_io_num=PIN_NUM_MISO,
    .mosi_io_num=PIN_NUM_MOSI,
    .sclk_io_num=PIN_NUM_CLK,
    .quadwp_io_num=-1,
    .quadhd_io_num=-1,
    .max_transfer_sz = 0 ,
  };
  spi_bus_initialize(HSPI_HOST, &spi_bus, 0);

  spi_device_interface_config_t devcfg=
  {
    .command_bits = 8 ,
    .address_bits = 24 ,
    .dummy_bits = 3 ,
    .duty_cycle_pos = 0 ,
    .clock_speed_hz=10*1000*1000,           //Clock out at 10 MHz
    .mode=0,                                //SPI mode 0
    .spics_io_num=PIN_NUM_CS,               //CS pin
    .queue_size=7,                          //We want to be able to queue 7 transactions at a time
  };
  spi_bus_add_device(HSPI_HOST, &devcfg, &spi);

  spi_transaction_t t ;
  t.addr=0x000000;
  t.cmd =0x90;
  t.length = 56 ;
  t.rx_buffer = &test ;
  t.rxlength = 24 ;

  spi_transaction_ext_t t1 ;
  t1.address_bits = 24 ;
  t1.command_bits = 8 ;
  t1.base = t ;

  spi_device_transmit(spi,&t);
  while(1);
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:3
  • 最好能放个波形图上来看一下,可以进一步分析,单从程序上看不出啥问题
电子老工程师 回复了 :封装: SOT-23-5 品牌: TI(德州仪器) 型号: TPS73633DBVR,不是完全替代,需要确认 回复

  • W25Q128一般都是普通SPI总线用得多,QSPI用得比较少,最好先用51或者32单片机实现一下。

相关问题

问题达人换一批

ESP32 HSPI 读写 W25Q128有人试过吗