WALKER168 发表于 2018-5-29 11:03:24

STM32F767IGT6 的PB4 能不能复用为I2S2 ?

本帖最后由 WALKER168 于 2018-5-29 11:08 编辑

之前用PB12 复用为 I2S2_WS 脚, 驱动WM8978 .
官方头文件 stm32f7xx_hal_gpio_ex.h 有如下定义:
#define GPIO_AF5_SPI2          ((uint8_t)0x05)/* SPI2/I2S2 Alternate Function mapping   */

看到STM32F767IGT6的PB4引脚说明,也可以复用为I2S2_WS 脚,因为布线需要就想用PB4替换PB12,复用为I2S2_WS 。
但官方头文件 stm32f7xx_hal_gpio_ex.h定义:
#define GPIO_AF7_SPI2          ((uint8_t)0x07)/* SPI2 Alternate Function mapping       */

这是否意味着,实际上 PB4是不能复用为 I2S2_WS?

stm1024 发表于 2018-5-29 11:28:40

本帖最后由 stm1024 于 2018-5-29 11:35 编辑

通常,手册上针脚的描述,会有这么两列:
Alternate functions
default,remap对于STM32F103VET6,我要用CAN,首先看手册:好几个地方都可以作为CAN的TX和RX

这个是default

这两个是remap



我理解的是,第一列,是使用针脚复用,例如:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);

对于第二列,就是还有额外功能,这个时候就要使用remap了:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
如果没有下面一行的话,就只能用做TIM4的channel3/4了

andeyqi 发表于 2018-5-29 12:58:20


五哥1 发表于 2018-5-29 14:38:18

用CUBE先把PB12占用(设定输出或输入),然后用PB4的 I2S2_WS ,先只用这一个功能,测试下就能快速的知道结果。没有这个板板,不然我就替你做个测试

wolfgang2015 发表于 2018-5-29 16:59:32

打开CubeMX 或者数据手册
找PB12 、PB4的复用手册 引脚的功能复用交叉表不是 一对一的。不是说PB12 有什么功能PB4也能复用同样的功能。即便能复用,复用的编号不一样。
一切以复用交叉表作为参考。便捷的方式适用CubeMX pin角功能选择下拉框实现。

toofree 发表于 2018-5-30 01:32:18

好多个管脚都可以复用为 I2S2_WS的。数了数,一个F7X7共有5个可以复用为 I2S2_WS的,具体到F767ZG也可以有4个。




















WALKER168 发表于 2018-5-30 07:00:14

toofree 发表于 2018-5-30 01:32
好多个管脚都可以复用为 I2S2_WS的。数了数,一个F7X7共有5个可以复用为 I2S2_WS的,具体到F767ZG也可以有4 ...

很用心的描述。谢谢。

zero99 发表于 2018-6-4 13:14:14

楼主问题解决了吗
页: [1]
查看完整版本: STM32F767IGT6 的PB4 能不能复用为I2S2 ?