在 SPRUEU1的 PAG 34 (2.9)上、会说 "如果一个远程帧存储在接收邮箱中、RFPn 位将不会被置位。"
但是在表2-9 (CANRFP 域说明)中会说:"对于接收邮箱、如果接收到远程帧并且 TRSn 不受影响、则 RFPn 位会被置位。"
对我来说、这些说法是矛盾的...
可以有人向我解释一下吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在 SPRUEU1的 PAG 34 (2.9)上、会说 "如果一个远程帧存储在接收邮箱中、RFPn 位将不会被置位。"
但是在表2-9 (CANRFP 域说明)中会说:"对于接收邮箱、如果接收到远程帧并且 TRSn 不受影响、则 RFPn 位会被置位。"
对我来说、这些说法是矛盾的...
可以有人向我解释一下吗?
线路"如果一个远程帧被存储在一个接收邮箱中(AAM=0、CANMD=1)、RFPn 位将不被置位"显示为错误。 我能够看到在接收邮箱中 RFP 位被设置。 应采取以下行为:
每当 CAN 模块接收到远程帧请求时
远程帧等待寄存器中的相应位 RFP[n]被置位。 如果是
远程帧存储在接收邮箱中(AAM=0、MD=1)、CPU 必须
启动应答帧传输并必须复位 RFP[n]标志。 如果是
配置为自动应答模式(AAM=1、MD=0)的邮箱接收一个遥控器
在应答帧结束后、CAN 模块清除 RFP[n]标志
传输成功。
如果可以进一步帮助、请告诉我。
非常感谢
还有一个小问题:
-> CPU 的 RFP[n]清除过程。
文本内容为:"(...) CPU 必须通过设置相应的传输请求复位位 TRR[n]位来清除 RFP[n]标志和 TRS[n]位。"
因此、我了解到、如果邮箱是 AAM = 1的发送邮箱、为了手动中断回复和清除 RFP 和 TRS 位、CPU 只 需设置 TRR...
但是 、如果邮箱是接收邮箱、并且接收到远程帧、则 TRS 不会自动置位。
因此 、我认为我必须直接清除 RFP[n]、而不是通过设置 TRR ... 是吗? 要直接清除 RFP 、我需要向其写入1?