用的是STM32F207 cube版本的库函数,CAN使用的是一般发送,中断接收。两个相同的开发板A,B做实验。
1,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文,没有问题;
2,A在while(1)中直接每隔1ms发送一个CAN报文帧,B中断接收CAN报文,没有问题;
3,A在while(1)中直接无延时循环发送一个CAN报文帧,B中断接收CAN报文,没有问题;
4,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文同时每隔10ms发送一帧数据,出现的现象是:B的CAN中断会在某一时刻FMP一直显示为03,接收邮箱一直是满的,当B不发送报文时,B恢复正常;
5,A在while(1)中直接每隔5ms发送一个CAN报文帧,B中断接收CAN报文之后发送一帧数据,没有问题。
可以得到的基本结论是,两个相同的板子之后,不管发送端发送的速度多块,接收端都能正常收到数据;一旦接收发送同时进行时,就会出现接收中段进不去的想象。
不知道可有人遇到这一种想象,有没有解决方法,谢谢。 |