近来折腾了一下NUC130的CAN,玩了一下和STM32的CAN互通,虽然现在是能发能收了,但130那堆CAN寄存器有几处没看明白,特别是它CAN发送的机制,非常模糊.
那个CREQ里的Message Number究竟意义何在?似乎发送机制的最后启动是需要向这个Message Number随便写入点数据的.
如下,用下列语句才能最终启动CAN发送.可以看到CREQ要写入两次!少一个都发不出去~
CAN->sMsgObj[0].u32MCON = CAN_MCON_NEWDAT | pCanMsg->DLC | CAN_MCON_EOB;
CAN->sMsgObj[0].u32CREQ = 1 ;
CAN->sMsgObj0].u32CMASK = CAN_CMASK_WRRD |CAN_CMASK_TXRQSTNEWDAT ;
CAN->sMsgObj[0].u32CREQ = 1; |