I am facing a problem in setting one MB to receive protocols from a range of different IDs .For example, like IDs ranged from 0x5C2 and 0x5C3.In the freeze mode I correctily set the IRMQ bit in MCR and fill the MB and accroding Rx Individual Mask Register as I desired.However when i leave the freeze mode ,all Rx Individual Mask Register were reset to zero,and it functions like one MB map to a certein ID which I write in MB during the initiate process.Can anyone helps me figure out why it funtctions like this and provides some guidance?
upon leaving Freeze mode RXIMR can be read as zero, writing is blocked.
So check if IRMQ is really set and in freeze mode check or share how RXIMR and MB area is written.
Thank you for your help .I found that I put wrong id mask in the related register. I fixed it,and now it works as I expected.Now I am facing a new problem , I use SPI3 to send data every 10ms,and I also use the same spi to send data immediately everytime when I receive a can messgae .When the 10ms routine works alone,no errors occurred.However when the can receive interrupt was triggered and the second transmiton started,the Ivor1 interrupt was triggered.In the MCSR register ,the BUS_DREER bit and LD bit were set.Can you give me some guidance.If I change work mode from SYNC to ASYNC ,will it make any differences ?
Thank you a lot.