我来说说吧:
所有在LIN总线上的数据mcu都可以接受到,不管是主发送的还是从回应的.你所要作的就是对这些数据进行处理.
你可以按照上楼老兄的说法,只有从回应的数据主才接受,这时就要对SCC2(GZ8)进行一些设置,在等待从回应的时候才打开接受器如:
tmp=SCS1; //清除SCRF标志位.
tmp=SCDR;
SCC2_RE=1; //准备接受回应
SCC2_SCRIE=1;
在非等待从回应的状态下就关闭接受器.
如
SCC2_RE=1; //准备接受回应
SCC2_SCRIE=1;
另外一种方法就是版主说的方法:
可以通过FE标志位等来判断,这时候就是把所有的数据都接受下来,不过是主发向从的,还是从回应的数据.当主接受到break field时,就会产生FE的帧错误.这个错误也可以产生中断,自己软件再去考虑怎么去接受数据.
你去看看FE标志是怎么产生的,就知道为什么break field一定会有FE错误.多看看DATASHEET. |