N32G430C8的CAN使用问题
本帖最后由 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配置过程引发异常,请问这是什么原因?有技术给解答下吗 什么异常?不能正常通信吗 看配置没啥毛病 UFO8848 发表于 2022-11-24 14:38
看配置没啥毛病
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)这里也会 出现同样问题。
页:
[1]