GD32w515 qspi 配置错误 新手求帮助!
使用引脚PA9,PA10,PA11,PA12,PB3,PB4我在读取 芯片id 时 读取的是88,
我查看 芯片手册 应该是引脚复用 为GPIO_AF_3 和GPIO_AF_4 ,但是还是不对,示波器打出来的波形很奇怪,
新手求帮助!
配置代码如下:
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOB);
rcu_periph_clock_enable(RCU_GPIOC);
gpio_af_set(GPIOA, GPIO_AF_3, GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12);
gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_166MHZ, GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12);
gpio_af_set(GPIOB, GPIO_AF_4, GPIO_PIN_3 | GPIO_PIN_4);
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3 | GPIO_PIN_4);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_166MHZ, GPIO_PIN_3 | GPIO_PIN_4);
qspi_init_struct Init;
// rcu_periph_clock_enable(RCU_GTZC);
// tzgpc_tzspc_peripheral_attributes_config(TZGPC_PERIPH_QSPI_FLASHREG, TZGPC_TZSPC_PERIPH_SEC);
qspi_flash_gpio_config();
// qspi_deinit();
rcu_periph_clock_enable(RCU_QSPI);
Init.prescaler = 1;/* QSPI clock = AHBCLK/(ClockPrescaler+1) */
Init.fifo_threshold = 10;
Init.sample_shift = QSPI_SAMPLE_SHIFTING_NONE;// QSPI_SAMPLE_SHIFTING_NONE;
Init.flash_size = 22;/* 2^(FlashSize+1) ***** number of address bits = FlashSize + 1*/
Init.cs_high_time = QSPI_CS_HIGH_TIME_1_CYCLE;
Init.clock_mode = QSPI_CLOCK_MODE_0;
qspi_init(&Init);
可有偿 检查引脚配置 检查QSPI配置是否正确 检查固件有没有错误或遗漏 参考示例代码 你可以使用官方的例程代码,进行配置试试 话说,GD的QSPI是不是和SPI差不多啊? 你试试ST的呢?听说GD和ST的代码好像也比较兼容 您已经使用了gpio_af_set函数将引脚设置为QSPI的复用功能,但是需要确保这些引脚的复用功能确实是QSPI所需的复用功能。您提到芯片手册中指定了GPIO_AF_3 和GPIO_AF_4,需要确保这些复用功能是正确的 在初始化QSPI时,需要设置正确的时钟模式、时钟极性、时钟相位等参数,以确保与外部设备的通信时序匹配 确保外部QSPI设备的连接正确,包括时钟、数据线、片选线等连接 根据您提到的示波器波形很奇怪,建议您仔细分析示波器的波形,查看时钟、数据线等信号的波形,以确定是否存在时序或连接问题 建议您参考芯片手册和QSPI外设的相关文档,仔细检查引脚复用设置、时序参数设置和外部设备连接,以确保QSPI外设的配置和工作是正确的 您可以尝试在STM32社区或者相关技术论坛上寻求帮助,以获取更专业的支持和建议 官方的例程试试吧,也许会有出奇的效果
是不是引脚模式配置有问题啊
页:
[1]