阿平-5742 发表于 2016-3-21 11:22:41

STM32F0 GPIO重映像写入函数是什么

我需要重映像F042F4的P9-P10到 P11-P12,以开启CAN功能;

STM32F1的是:GPIO_PinRemapConfig
            GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

F0的HAL库里是:
          __HAL_REMAP_PIN_ENABLE(HAL_REMAP_PA11_PA12);

但在STM32F0库(1.3版)中找不到执行重映像的指令,请高人指点是多少?


同样的问题,目前还没有高人出现:P
https://www.stmcu.org.cn/module/forum/thread-603612-1-1.html

这里有个类似完整贴,个人水平有限,可能不是小封装的,不需要重映像,反正我也没有找到
http://bbs.21ic.com/icview-818912-1-1.html

阿平-5742 发表于 2016-3-21 23:10:08

找到了,主要是重映射时,还要配置寄存器的代码:
//重映射
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP;//PA11 and PA12 remap on QFN28 and TSSOP20 packages
搞定了。:lol

xmshao 发表于 2016-3-21 22:00:18

STM32F1以外所有系列的关于管脚复用配置 更为简单。

F0的标准库里也有相关配置代码:

GPIO_InitTypeDefGPIO_InitStructure;
CAN_InitTypeDef      CAN_InitStructure;
CAN_FilterInitTypeDefCAN_FilterInitStructure;
   
/* CAN GPIOs configuration **************************************************/

/* Enable GPIO clock */
RCC_AHBPeriphClockCmd(CAN_GPIO_CLK, ENABLE);

/* Connect CAN pins to AF7 */
GPIO_PinAFConfig(CAN_GPIO_PORT, CAN_RX_SOURCE, CAN_AF_PORT);
GPIO_PinAFConfig(CAN_GPIO_PORT, CAN_TX_SOURCE, CAN_AF_PORT);

/* Configure CAN RX and TX pins */
GPIO_InitStructure.GPIO_Pin = CAN_RX_PIN | CAN_TX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_UP;
GPIO_Init(CAN_GPIO_PORT, &GPIO_InitStructure);

/* Enable CAN clock */
RCC_APB1PeriphClockCmd(CAN_CLK, ENABLE);
/* CAN register init */
CAN_DeInit(CANx);
CAN_StructInit(&CAN_InitStructure);
。。。。。。。

Paderboy 发表于 2016-3-21 19:12:31

本帖最后由 Paderboy 于 2016-3-21 19:31 编辑

好吧,我用CubeMx帮你调试出来了。。




zcl201207 发表于 2016-3-21 21:33:38

:):):):):):)

党国特派员 发表于 2016-3-22 09:09:40

CUBEMX按住Ctrl+Pin

Owen.li 发表于 2018-4-26 13:57:08

多谢,用到
页: [1]
查看完整版本: STM32F0 GPIO重映像写入函数是什么