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.

[参考译文] CCS/TMS320F2.8027万:C2000微处理器上的外围设备SCI,SPI等驱动程序代码

Guru**** 2224720 points
Other Parts Discussed in Thread: CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/585426/ccs-tms320f28027-driver-code-for-peripherals-sci-spi-etc-on-c2000-microcontrollers

部件号:TMS320F2.8027万
主题:controlSUITE中讨论的其他部件

工具/软件:Code Composer Studio

为了对微处理器上的SCI,SPI,I2C (如f2806x和 F2802x)进行编程,每个外设TI都有两组寄存器定义。 例如SCI,TI在 sci.h/sci.c中有struct _sci_obj_,在F2806x_Sci.h中有struct sci_regs (基于controlSUITE的联合)。 它们实际上与结构中每个成员的大小和顺序相同。  

因此,在我们使用SCI基本地址进行初始化(使用SCI_init())以获得SCI_HANDLE对象之后。 然后,如果要使用SCI_regs结构对象,只需将SCI_handle对象转换并传递到SCI_regs的指针。

 如下所示:

 sci_handle scia_handle = sci_init((void*)scia_base_addr, sizeof(SCI_Obj));

sci_regs    * scia_regs_p =(sci_regs    *) scia_handle;

只是想确保这是正确的方法。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您描述的第一种方法是我们的“驱动程序”样式,第二种方法是我们的“结构”样式。 用户通常选择一种样式并坚持使用,来回切换可能会令人困惑。

    无论如何,这应该是有效的! 我建议您在定义SCI_regs时使用“volatile”关键字,因为此结构中的某些值可能会被应用程序代码之外的内容更改。

    此致,
    科迪