|
在FRDM-K22F上使用CAN0,初始化代码如下:
OSC_CR |= OSC_CR_ERCLKEN_MASK;
PORT_HAL_SetMuxMode(CAN_Tx_BaseAddr,CAN_Tx_Pin,CAN_Tx_PortMux);
PORT_HAL_SetMuxMode(CAN_Rx_BaseAddr,CAN_Rx_Pin,CAN_Rx_PortMux);
PORT_HAL_SetPullMode(CAN_Tx_BaseAddr,CAN_Tx_Pin,kPortPullUp);
PORT_HAL_SetPullMode(CAN_Rx_BaseAddr,CAN_Rx_Pin,kPortPullUp);
PORT_HAL_SetPullCmd(CAN_Tx_BaseAddr,CAN_Tx_Pin,true);
PORT_HAL_SetPullCmd(CAN_Rx_BaseAddr,CAN_Rx_Pin,true);
SIM_SCGC6 |= 0x10u;
NVIC_EnableIRQ(CAN0_ORed_Message_buffer_IRQn);
CAN0_CTRL1 |= CAN_CTRL1_CLKSRC_MASK;
......
只要执行到CAN0_CTRL1 |= CAN_CTRL1_CLKSRC_MASK; 必然进HardFault_Handler
执行CAN0_CTRL1 &= ~CAN_CTRL1_CLKSRC_MASK;结果也是一样 |
|