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.

TMS320F280021: can邮箱数量问题

Part Number: TMS320F280021
Other Parts Discussed in Thread: C2000WARE

can邮箱只能使用16个,多了运行会报错,想问一下哪个寄存器能打开全部的邮箱数,手册上写着有32个邮箱。

  • 想问一下哪个寄存器能打开全部的邮箱数

    你好,我刚刚查看了手册,似乎是没有这样的寄存器。能否提供报错截图?

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //*****************************************************************************
    //
    // Error handling function to be called when an ASSERT is violated
    //
    //*****************************************************************************
    void __error__(char *filename, uint32_t line)
    {
    //
    // An ASSERT condition was evaluated as false. You can use the filename and
    // line parameters to determine what went wrong.
    //
    ESTOP0;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    使用邮箱数量超过16个,程序就会跳转到此位置。

  • 请问您使用的是C2000ware的例程吗?您C2000Ware的版本是什么?

  • 你好!使用的不是例程。以下是我的程序。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void init_eCAN_A ( u16 bitRatePrescaler, u16 timeSeg1, u16
    timeSeg2, u16 sbg, u16 sjw, u16 sam)
    {
    u32 ui32RegValue;
    u16 ui16CANCTL;
    EALLOW;
    CpuSysRegs.PCLKCR10.bit.CAN_A = 1;
    GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; /* Enable pull-up on GPIO13 */
    GpioCtrlRegs.GPAGMUX1.bit.GPIO13 = 3;
    GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 1;
    GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; /* Enable pull-up on GPIO12 */
    GpioCtrlRegs.GPAGMUX1.bit.GPIO12 = 3;
    GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1;
    EDIS;
    ui32RegValue = (((u32)((bitRatePrescaler-1) & 0x03C0))<<10)|((timeSeg2-1)<<
    12)|((timeSeg1-1)<<8)|((sjw-1)<<6)|((bitRatePrescaler-1) & 0x3F);
    // EALLOW;
    // CanaRegs.CAN_CTL.bit.Init = 1;//CAN module ignores bus activity
    // CanaRegs.CAN_CTL.bit.PMD = 5;//Parity function disabled
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 我推测应该是您库的问题。

    extern void __error__(char *filename, uint32_t line);该函数曾经导致一些问题,extern void __error__(const char *filename, uint32_t line);这个是最新版本的函数,关于从char *更改为const char *的问题,此更改已经在C2000Ware v4.01.00中推出。已对 debug.h 和 device.h 文件中的所有 Gen3器件进行了更改。

  • 您需要重新安装C2000Ware并在您的工程中使用最新的库,以下是最新c2000ware的下载链接:

    www.ti.com.cn/.../C2000WARE

  • 我已经下好了C2000Ware 我应该怎么跟换最新的库

  • 你可以试试将C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f28002x\driverlib 路径下的debug.h替换掉您原来的。

x 出现错误。请重试或与管理员联系。