Kinetis VLPS下FlexCAN唤醒实现
0赞
发表于 2016/11/5 23:15:47
阅读(1543)
本篇介绍如何在VLPS低功耗模式下实现CAN唤醒的功能。
手册中介绍在VLPS下,FlexCAN可以被配置成产生一个中断用户唤醒MCU。
产生Wake-up 中断的条件是SLFWAK设置为1,WAKMSK设置为1, 当WAKINT标志位为1时即产生中断
值得注意的一点是这时产生的中断不是普通的CAN接收数据的中断,
所以整个配置过程是:
1)CANx_MCR寄存器的SLFWAK位置1
2)CANx_MCR寄存器的WAKMSK位置1
3)使能CAN wake-up NVIC中断
4 ) 调用VLPS函数进入低功耗状态
5)在CAN wake-up中断服务函数中,判断WAKINT标志位是否为1,当为1时清除标志位
注意:唤醒的这一帧CAN数据唤醒MCU之后将无法被正常接收
附上一个main.c文件以供参考