K22 FlexCAN初始化总进入HardFault_Handler求教
在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;结果也是一样 时钟问题吧?有进展吗?can这个东西对时钟分频很麻烦的。你用的是晶振时钟源还是内部总线时钟。 jiang887786 发表于 2015-4-14 22:45
时钟问题吧?有进展吗?can这个东西对时钟分频很麻烦的。你用的是晶振时钟源还是内部总线时钟。 ...
不像,在FlexCAN初始化就出了问题,就是设置时钟源的那条指令出问题 楼主你好
从FRDM-K22F: 面向Kinetis K22 MCU的飞思卡尔Freedom开发平台页面看FRDM-K22F开发板上的主芯片是:MK22FN512VLH12
其对应的参考手册应该是:K22P121M120SF7RM
从其对应参考手册上没有看到此款芯片有CAN模块。 FSL_TICS_Robin 发表于 2015-4-15 08:46
楼主你好
从FRDM-K22F: 面向Kinetis K22 MCU的飞思卡尔Freedom开发平台页面看FRDM-K22F开发板上的主芯片是 ...
我一直用K22P64M120SF5V2RM.pdf,原来错了
能否推荐一个带示波器功能且能保存数据的串口显示软件? bailao99 发表于 2015-4-15 09:01
我一直用K22P64M120SF5V2RM.pdf,原来错了
能否推荐一个带示波器功能且能保存数据的串口显示软件? ...
每个参考手册开头都有列出适用的芯片,以后使用芯片时要多加注意选择自己芯片在列的文档。
虽然同系列芯片功能大致相同,但众多型号之间还是稍有区别靠参考手册才能区分具体不同。 原来是参考的手册错了{:lol:} 子鱼 发表于 2015-4-15 09:26
原来是参考的手册错了
是楼主看了其他型号芯片的参考手册...
楼主这型号芯片没这个CAN模块,却在程序里使用相关寄存器出错也是正常的。 非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
页:
[1]