同时接受的定义是什么?
首先,你是指同一个端口CAN又作USART吗?似乎硬件不支持这个接法吧?
其次,如果是两个不同端口的话。用中断方式通讯,虽然数据到缓存是同时的,但是主控程序接收处理数据还是得一个一个的来。不可能同时进行处理,因为是CPU是单线程的。
不知道你怎么定义同时?
如果支持DMA的话,还可能通过硬件进行同步接收,否则只能是分时(只是间隔短,从上层来说感觉是同时的)。
采用中断接收方式。
即使串口和CAN数据同时来了,单片机会按照中断优先级去处理中断函数。
你的中断函数要求住接收保存数据即可,
处理数据建议放到主函数中,要求中断函数快进快出。
如果设计的更完美一些,可以使用DMA接收的方式。