Other Parts Discussed in Thread:C2000WARE
F280049 用 driverlib编程,有没有专门的手册解释各个子函数的。用惯了28035,用库编程不习惯,不清楚里面是啥 不敢用。
Susan Yang:
您可以下载C2000ware,其安装文件夹内有文档 F28004x_DriverLib_Users_Guide 以及 F28004x_DriverLib_API_Guide
路径:
C2000Ware_2_01_00_00\device_support\f28004x\docs
,
user4675816:
C2000Ware_3_03_00_00版本没有你说的这两个文件。另外CAN通信的寄存器版例程哪里能获得。新版的手册CAN部分框图都没有了,全是文字描述,例程也只有寄存器版本,根本看不懂。
,
Susan Yang:
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来了解相关的函数定义
,
user4675816:
Driverlib中提供的函数根本不足够做复杂的用户个性化配置。中断使能要么全开要么全关,RxIE,TxIE分别配置都不能。想用寄存器配置,CAN寄存器那个共用体叫什么名字我都没查到。比如操作GPIO就用GpioCtrlRegs。CAN的叫啥。CAN.h里面只有被封装的函数。库编程极不成熟啊,这玩意能用?
,
Susan Yang:
首先请您参考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);
,
user4675816:
我希望只开CAN接收中断,不想开CAN发送中断。发送用查询方式。以免中断太多影响算法。怎用库函数配置?CAN_enableInterrupt()一次性打开所有中断实际应用时不能这么搞 啊。CAN寄存器编程时那个共用体的名字叫什么,不是指库编程接口。我想自己用寄 存器写初始化函数,不想用库编程,太不灵活了。
,
Susan Yang:
我们在您新发的帖子内继续讨论:
e2echina.ti.com/…/614826
TI中文支持网

