[N32G430] N32G430C8的CAN使用问题

[复制链接]
1215|3
 楼主| duware 发表于 2022-11-24 09:48 | 显示全部楼层 |阅读模式
本帖最后由 duware 于 2022-11-24 09:59 编辑

例程中使用的是PB8和PB9,配置程序如下
    RCC_APB1_Peripheral_Clock_Enable(RCC_APB1_PERIPH_CAN);
    RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOB);
    RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_AFIO);

    /* configure CAN pin */
    GPIO_InitStructure.Pin            = GPIO_PIN_8;
    GPIO_InitStructure.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Alternate = GPIO_AF6_CAN;
    GPIO_Peripheral_Initialize(GPIOB, &GPIO_InitStructure);

    GPIO_InitStructure.Pin             = GPIO_PIN_9;
    GPIO_InitStructure.GPIO_Alternate  = GPIO_AF6_CAN;
    GPIO_Peripheral_Initialize(GPIOB, &GPIO_InitStructure);

以上代码没有问题,如果管脚改为 PA11、PA12,修改代码如下

RCC_APB1_Peripheral_Clock_Enable(RCC_APB1_PERIPH_CAN);
    RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOA);
    RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_AFIO);

    /* configure CAN pin */
    GPIO_InitStructure.Pin            = GPIO_PIN_11;
    GPIO_InitStructure.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Alternate = GPIO_AF2_CAN;
    GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.Pin             = GPIO_PIN_12;
    GPIO_InitStructure.GPIO_Alternate  = GPIO_AF2_CAN;
    GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure);

在执行 PA12配置过程引发异常,请问这是什么原因?有技术给解答下吗
sy12138 发表于 2022-11-24 14:35 | 显示全部楼层
什么异常?不能正常通信吗
UFO8848 发表于 2022-11-24 14:38 | 显示全部楼层
看配置没啥毛病
 楼主| duware 发表于 2022-11-24 17:08 | 显示全部楼层

jlink 连机调试,执行PA12配置,这个函数  GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure)  会导致jlink断开,提示无法连接CPU之类。尝试过如下代码

    RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOA);
    RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_AFIO);

    /* configure CAN pin */
    GPIO_InitStructure.Pin            = GPIO_PIN_11;
    GPIO_InitStructure.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Alternate = GPIO_AF2_CAN;
    GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.Pin             = GPIO_PIN_12;
    GPIO_InitStructure.GPIO_Alternate  = GPIO_AF2_CAN;
    GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure);
    。。。。

    RCC_APB1_Peripheral_Clock_Enable(RCC_APB1_PERIPH_CAN);
   。。。。
   配置PA12没问题,但是在执行  RCC_APB1_Peripheral_Clock_Enable(RCC_APB1_PERIPH_CAN)  这里也会   出现同样问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

12

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部