Code: Select all
from pyb import CAN
can = CAN(1,CAN.NORMAL)
can.init(CAN.NORMAL,True,21,sjw=1,bs1=5,bs2=2) #extframe=True for 29bit identifier, PCL1=42000000 (42MHz, 23.8095nsec),250kbps= 42MHz/(21*(1+5+2))
can.setfilter(0, CAN.MASK32, 0, (0X00FF3101,0X00FF3801)) #set filters for bank 0
can_id,can_rtr,can_fmi,can_Data = can.recv(0)
#can.setfilter(0, CAN.MASK32, 0, (0X00FF3501,0X00FF3601)) #set filters for bank 1
#can_id,can_rtr,can_fmi,can_Data = can.recv(1)
even though I have set the filter on bank 0 to certain ID's, I am receiving CAN messages that are different from the filter ID's also.
Another issue is, if I set the filter bank 1 and tried to receive data from bank 1 I get a timeout error.
Any one know why?
Thank you.