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.h,没有can.c)

Other Parts Discussed in Thread: MOTORWARE, CONTROLSUITE

学习使用motorware开发过程中,需要使用到CAN。但仔细查找HAL之后发现,居然没有CAN的操作方法。回头又查了一下drivers and moduls,发现除了CAN之外,还有CLA,I2C,LIN都没有相关操作方法。烦请解释。另外,motorware基于开发板做了一些特别针对开发板的drivers,如我们自已设的控制板,针对我们自已的板的drivers如何编写?谢谢!

  • Motorware主要包含的是InstaSPIN的算法,电机驱动部分,CAN等片内外设的使用请参考controlsuite中的例程,但两个程序的风格不一样,保持lab程序的软件架构,添加CAN等使用在应用层。

  • motorware的作用,就是将面向过程的编程方法,变成面向过程的方法。所谓抽象层,就是将硬件及其操作函数进行抽象(类定义),利用类来定义不同的对象。编制程序时,只需对每个对象进行必须的操作即可。

    这样问题就来了,CONTROLSUIT里的CAN示例基本上都是面向过程的,如果我们利用motorware进行开发时,岂不是成为一个混合体:即要面向对象编程,又要面向过程编程?

    实际测试了一下,将can.h包含在LAB中进行混合编程是可行的;对Can的相关寄存器及操作函数进行封装(类定义),再定义一些适当的对象,采用LAB示例的方式,对CAN进行编程也是可行的。只是对CAN的相关寄存器及操作函数进行封装,比较麻烦。