打印
[STM32F0]

STM32F042F6 CAN初始化问题急救

[复制链接]
1199|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2021-11-21 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化时,卡在这里不出来,IO也重新定向到 PA11和PA12了,为何?
   while (((CANx->MSR & CAN_MSR_INAK) == (uint16_t)CAN_MSR_INAK) && (wait_ack != INAK_TIMEOUT))
   {
     wait_ack++;
   }

使用特权

评论回复
沙发
stly| | 2021-11-21 16:15 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
zhenykun|  楼主 | 2021-11-21 16:17 | 只看该作者
贴上初始化设置:
static void CAN_GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP;                  //RMAP
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA , ENABLE);                                                                                                                        
        /* CAN1 Periph clock enable */
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN, ENABLE);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_4);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_4);
        /* Configure CAN pin: RX */                                                         // PA11
        GPIO_InitStructure.GPIO_Pin    = CAN_RX;
        GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_UP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        /* Configure CAN pin: TX */                                                         // PA12
        GPIO_InitStructure.GPIO_Pin    = CAN_TX;
        GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType  = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed  = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
}

使用特权

评论回复
地板
shimx| | 2021-11-21 16:19 | 只看该作者
看晶振起振了吗

使用特权

评论回复
5
zhaoxqi| | 2021-11-21 16:21 | 只看该作者
别的部分能初始化吗

使用特权

评论回复
6
jlyuan| | 2021-11-21 16:24 | 只看该作者
/* CAN GPIOs configuration **************************************************/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP;//PA11 and PA12 remap on QFN28 and TSSOP20 packages
  /* 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);

使用特权

评论回复
7
llljh| | 2021-11-21 16:26 | 只看该作者
这个芯片的例子有没有CAN的

使用特权

评论回复
8
heweibig| | 2021-11-21 16:29 | 只看该作者
如果有CAN的例子,看看例子是怎么初始化的

使用特权

评论回复
9
wyjie| | 2021-11-21 16:31 | 只看该作者
如果代码一致,看看硬件。

使用特权

评论回复
10
zhenykun|  楼主 | 2021-11-21 17:00 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝