那么现在就有一个问题,当接收完这一个完整的串口指令后,就应该马上调用该指令的处理函数,如果在接收中断中直接调用,有可能这个处理函数耗时较长,这样程序就会处在串口中断中好长时间出不来,影响后面指令的接收;另外还有可能就是这个处理函数中含有串口发送的功能,这样就有可能造成串口中断函数的递归调用,单片机无法实现。
我在编写其他单片机程序的时候,没有考虑低功耗的问题,都是这样做的:主程序始终轮询一个任务变量A,使用switch,不同的任务变量值,就处理不同的任务。串口接收到指令后,对指令进行简单的处理判断,找到对应的任务,将任务变量A的值改为该处理函数对应的任务值,然后中断处理函数结束了。在主程序中进行处理函数的调用。
但是现在msp430,主程序应该长时间休眠,不能始终轮询。
大家在处理串口发过来的指令的时候,都是怎么做的?谢谢大家啦!
