本帖最后由 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配置过程引发异常,请问这是什么原因?有技术给解答下吗 |