野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14300|回复: 4

有大神路过解决下新手关于I2S的问题没????

[复制链接]
发表于 2019-8-19 19:54:56 | 显示全部楼层 |阅读模式
本帖最后由 lhk5195 于 2019-8-19 20:33 编辑
I2S录音和播放的EXT_SD引脚例程上使用的是PC2
SD引脚使用的是PI3
本来I2S2和SPI2是使用的共同的资源
为啥PI3设置PCIO的时候设置的是复用功能是GPIO_AF_SPI2
PC2设置的是 GPIO_AF_SPI3
在stm32f4xx_gpio.h里面的说明如下
/**
  * @brief   AF 5 selection  
  */
#define GPIO_AF_SPI1          ((uint8_t)0x05)  /* SPI1/I2S1 Alternate Function mapping */
#define GPIO_AF_SPI2          ((uint8_t)0x05)  /* SPI2/I2S2 Alternate Function mapping */
#define GPIO_AF5_SPI3         ((uint8_t)0x05)  /* SPI3/I2S3 Alternate Function mapping (仅适用于STM32F411XE设备 Only for STM32F411xE Devices) */
#define GPIO_AF_SPI4          ((uint8_t)0x05)  /* SPI4/I2S4 Alternate Function mapping */
#define GPIO_AF_SPI5          ((uint8_t)0x05)  /* SPI5 Alternate Function mapping      */
#define GPIO_AF_SPI6          ((uint8_t)0x05)  /* SPI6 Alternate Function mapping      */

/**
  * @brief   AF 6 selection  
  */
#define GPIO_AF_SPI3          ((uint8_t)0x06)  /* SPI3/I2S3 Alternate Function mapping */
#define GPIO_AF6_SPI2         ((uint8_t)0x06)  /* SPI2 Alternate Function mapping (Only for STM32F411xE Devices) */
#define GPIO_AF6_SPI4         ((uint8_t)0x06)  /* SPI4 Alternate Function mapping (Only for STM32F411xE Devices) */
#define GPIO_AF6_SPI5         ((uint8_t)0x06)  /* SPI5 Alternate Function mapping (Only for STM32F411xE Devices) */
#define GPIO_AF_SAI1          ((uint8_t)0x06)  /* SAI1 Alternate Function mapping      */
GPIO_AF_SPI2 才是SPI2/I2S2复用功能
GPIO_AF_SPI3 是SPI3/I2S3


还有DMA传输设置也有问题
播放DMA设置数据流是4通道0
录音的是数据流3通道3
根据DMA表查询数据流4通道0是SPI2_TX
数据流3通道3是I2S2_ext_RX
这两个数据流为什么不是设置I2S2_EXT_RX和I2S2_EXT_TX或者SPI2_TX和SPI2_RX?


这个我发过一个帖子问了 也没见人有回答的 急求啊  我看了 好多天了  也找了 不少网页看了


回复

使用道具 举报

发表于 2019-8-20 13:51:06 | 显示全部楼层
看一下《STM32F4xx中文数据手册》
无标题.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-20 16:14:30 | 显示全部楼层
本帖最后由 lhk5195 于 2019-8-20 16:15 编辑
君负花开 发表于 2019-8-20 13:51
看一下《STM32F4xx中文数据手册》

这个图是表示PC2可以设置的复用功能 为什么复用功能要写GPIO_AF_SPI3才可以指定为I2S2ext_SD??
GPIO_AF_SPI3描述是  SPI3/I2S3 Alternate Function mapping 并没有说明是I2S2的 怎么解释啊
回复 支持 反对

使用道具 举报

发表于 2019-8-20 17:36:01 | 显示全部楼层
lhk5195 发表于 2019-8-20 16:14
这个图是表示PC2可以设置的复用功能 为什么复用功能要写GPIO_AF_SPI3才可以指定为I2S2ext_SD??
GPIO_ ...

说不定,注释错了呢。。。使用GPIO_AF_SPI2是AF5,那就变成了SPI的复用,不是I2S的了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-20 20:19:26 | 显示全部楼层
君负花开 发表于 2019-8-20 17:36
说不定,注释错了呢。。。使用GPIO_AF_SPI2是AF5,那就变成了SPI的复用,不是I2S的了

非常感谢你的回答 明白一点了
下面这个DMA设置能回答下么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 21:04 , Processed in 0.030840 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表