STM32关于CAN模块
之前用的LPC和LM3S系列对于CAN模块都有32个报文对象(message objects),每个报文对象具有标识符屏蔽。
而STM32的CAN模块,有14个滤波器组(filter banks),是否等同报文对象的作用呢? 使用时有什么区别?
另外STM32的 3个发送邮箱(mailboxes)是否与LPC和LM3S系列的CAN接口寄存器(CAN register interface)一个意思呢?
这个我不是很清楚,可以上网去查下的 3个发送邮箱应该理解是有3个可以用来做发送的数据缓冲,过滤器也就是掩码寄存器用来设置只接收哪些ID的数据,比如,你只希望接收广播的0X18000001的数据,这个时候就要设置掩码寄存器来实现。 直接用库函数,不用管寄存器定义。
发送:直接丢数据到CAN_Transmit(); 然后去判断一下邮箱是否发完。
接收:先CAN_FilterInit( );滤波器组指向FIFO0或1,通过中断CAN_GetITStatus()判断FIFO0,1是否接收到数据,再CAN_Receive()去读。
就是不知道滤波器组是否只是判断接收ID用的,还是能够暂存接收到的报文呢? 怕3组FIFO没来及处理,会不会丢包呢。。。
页:
[1]