stm32的can不用中断如何接收

stm32的can不用中断如何接收,第1张

can接收时,即使不需要过滤,也需要添加一个过滤器(选择mask模式,32位,MASK ID HIGH LOW,ID HIGH LOW都填0,过滤器选择FIFO0,其他默认就好)。can过滤器,有两种模式,一种mask模式(掩码模式),一种list模式(列表模式),有两种位选择,一种32位,一种16位:

检查 STDID[10:0]、 EXTID[17:0]、 IDE和 RTR位,一共 31位

检查 STDID[10:0]、 RTR、 IDE和 EXTID[17:15],一共 16位

列表模式:32位宽的列表模式,可以精确筛选两个ID(扩展帧和标准帧都可以),对于16位宽的列表模式,可以精确筛选4个标准帧ID,如果将IDE位置1,则可以筛选ID的高11位数据,无法精确筛选扩展帧ID。

掩码模式:类似屏蔽码和验证码,屏蔽码用来指定需要确定的位,验证码用来指定确定的位的值,两者一起用来过滤部分ID。

32位的掩码模式:Filter Id High与Filter Id Low合在一起表示CAN_FxR1寄存器,用来存放验证码,而Filter Mask Id High与Filter Mask Id Low合在一起表示CAN_FxR2寄存器,用来存放屏蔽码

16位的掩码模式:CAN_FxR1的低16位是作为验证码,对应的16位屏蔽码为CAN_FxR1的高16位,同样的,CAN_FxR2的低16位是作为验证码,对应与CAN_FxR2的高16位为屏蔽码

CAN通信的ID有标准ID和扩展ID,其有四种模式,即列表模式和掩码模式(两种模式的区别网上资源较多,此处不做具体区别,其主要却别是列表模式下的ID较为具体(每一位都是明确的),而掩码ID),其中列表模式和掩码模式各有16位宽和32位宽。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11944149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存