This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F29379D的CAN通讯问题



1、如何实现CAN通讯发送32位float型数据?库函数定义的是16位无符号整数

extern void
CAN_sendMessage(uint32_t base, uint32_t objID, uint16_t msgLen,
const uint16_t *msgData);

2、程序用can传递某个变量的值,该变量是总中断更新一次,如何实现数据段的更新?

把一下程序放在中断里,可以实现吗?

// Initialize the transmit message object data buffer to be sent
//
txMsgData=pi_pos.Fbk;

//
// Start CAN module A operations
//
CAN_startModule(CANA_BASE);

//
// Transmit messages from CAN-A
//

CAN_sendMessage(CANA_BASE, TX_MSG_OBJ_ID, MSG_DATA_LENGTH, txMsgData);

3、需要用到多个邮箱,是否重复一下程序即可?

CAN_setupMessageObject(CANA_BASE, TX_MSG_OBJ_ID, 0x95555555,
CAN_MSG_FRAME_EXT, CAN_MSG_OBJ_TYPE_TX, 0,
CAN_MSG_OBJ_NO_FLAGS, MSG_DATA_LENGTH);

// Initialize the transmit message object data buffer to be sent
//
txMsgData=pi_pos.Fbk;
//pi_id.fbk;

//
// Start CAN module A operations
//
CAN_startModule(CANA_BASE);

//
// Transmit messages from CAN-A
//
//while(1)
//
// Comment for infinite transmissions
//
//for(i = 0; i < TXCOUNT; i++)
//
//{
CAN_sendMessage(CANA_BASE, TX_MSG_OBJ_ID, MSG_DATA_LENGTH, txMsgData);

//