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.

往Motorware例程中添加CAN通信内容遇到的问题

Other Parts Discussed in Thread: CONTROLSUITE, MOTORWARE

现在在做往Motorware电机控制例程中添加CAN通信的内容。因为controlsuite与motorware编程风格不一样,且Motorware的例程中没有对can的寄存器进行封装,编写相应的结构体。所以自己模仿其他外设模块的编程方式写了一个can.c的文件,利用can.h定义的结构体来编写程序。

其中两部分程序如下图所示:

1. 将定义的寄存器结构体与对应的内存地址相联系

2. 往邮箱里写入初始数据

此外,还将controlsuite例程中关于can的初始化程序按照新定义的结构体重新修改一遍并移植到电机控制程序中。

可是在程序运行时,观察邮箱内存地址中的数据都是0,自测试模式也无法通过。

感觉就像是给寄存器写的值完全没起到作用,可是前面也有模仿motorware编程方式将寄存器指针域与地址相联系起来。

尝试直接定义一个指向邮箱存储内容的指针往里面写数据也无法改变邮箱内的数据(一直都为0)。

想了很久也没有想到错误原因和解决办法,所以特来向各位前辈求教,希望大家能够指点一二,先谢谢大家了!