|
最近在用103做项目,用到CAN与主机通信,通过USB与SD卡更新数据,当然USB与CAN不是同时使用,使用时把CAN映射到了PB8,9脚,现在USB已经以可以正常枚举,进行读写,但一调用CAN的引脚配置时,USB枚举不成功,请问是什么原因呢,照理说我已经把CAN重映射到了PB8,9脚了,这对原PA11,12有什么影响呢,USB与CAN只是共用512B的RAM,难道他们也共配置寄存器吗?
void CAN1PinConfiguration(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap1_CAN,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
}
void CAN1NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStruct.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
一调用CAN1PinConfiguration()USB就不能正常枚举,请问是什么原因,再线等。 |