F280049 用 driverlib编程,有没有专门的手册解释各个子函数的。用惯了28035,用库编程不习惯,不清楚里面是啥 不敢用。
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.
F280049 用 driverlib编程,有没有专门的手册解释各个子函数的。用惯了28035,用库编程不习惯,不清楚里面是啥 不敢用。
user4675816 说:C2000Ware_3_03_00_00版本没有你说的这两个文件。
好像这个版本里确实没有找到,我附件附上该文件
F28004x_DriverLib_Users_Guide.pdf
user4675816 说:CAN通信的寄存器版例程哪里能获得
目前是没有寄存器版本的CAN例程的,driverlib的相关例程参考
C2000Ware_3_03_00_00\driverlib\f28004x\examples\can
关于driverlib内该CAN例程的话,建议您查看 C2000Ware_3_03_00_00\driverlib\f28004x\driverlib内的can.c来了解相关的函数定义
首先请您参考TI例程,如can_ex2_loopback_interrupts
user4675816 说:中断使能要么全开要么全关,RxIE,TxIE分别配置都不能。
麻烦看一下
//
// Enable the CAN interrupt signal
//
Interrupt_enable(INT_CANA0);
以及
// // CAN ISR - The interrupt service routine called when a CAN interrupt is // triggered. It checks for the cause of the interrupt, and // maintains a count of all messages that have been transmitted. // __interrupt void canISR(void)
您可以在中断服务程序内来判断是收还是发引起的中断
user4675816 说:操作GPIO就用GpioCtrlRegs。CAN的叫啥
//
// Initialize GPIO and configure GPIO pins for CANTX/CANRX
//
Device_initGPIO();
GPIO_setPinConfig(DEVICE_GPIO_CFG_CANRXA);
GPIO_setPinConfig(DEVICE_GPIO_CFG_CANTXA);
user4675816 说:CAN寄存器那个共用体叫什么名字我都没查到。
//
// Initialize the transmit message object used for sending CAN messages.
// Message Object Parameters:
// Message Object ID Number: 1
// Message Identifier: 0x1
// Message Frame: Standard
// Message Type: Transmit
// Message ID Mask: 0x0
// Message Object Flags: Transmit Interrupt
// Message Data Length: 4 Bytes
//
CAN_setupMessageObject(CANA_BASE, TX_MSG_OBJ_ID, 0x1, CAN_MSG_FRAME_STD,
CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_TX_INT_ENABLE,
MSG_DATA_LENGTH);
//
// Initialize the receive message object used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 2
// Message Identifier: 0x1
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: Receive Interrupt
// Message Data Length: 4 Bytes
//
CAN_setupMessageObject(CANA_BASE, RX_MSG_OBJ_ID, 0x1, CAN_MSG_FRAME_STD,
CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
MSG_DATA_LENGTH);