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.

[参考译文] TMS320F2.8027万:TMS320F2.8027万检查是否发生了SCI通信

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/579922/tms320f28027-tms320f28027-checking-whether-sci-communicattion-has-occured

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

尊敬的所有人:

我正在 研究TMS320F2.8027万。 我正在尝试 通过SCI端口在两个TMS320F2.8027万之间进行通信。 其中一个将接收不重要的数据。 另一台将检查发射器是否正在发送数据。 İf它正在发送数据,接收 器TMS320F2.8027万将创建PWM。 İf发送器停止发送信号,接收器将停止PWM生成。 我正在考虑如何让接收器检查传输器是否正在传输数据。 检查启动位是否可能在GPIO数据寄存器上接收,或者如果没有接收数据,如何使PWM停止?

此致

Fahri  

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

    您好,Fahri,

    这非常容易实施。 您只需不断检查从机'RxBuf'寄存器中的有效数据。 如果数据有效,则打开PWM,否则关闭!
    您需要首先让2个控制器相互通信。 请参阅此处提供的SCI示例代码:
    C:\ti\controlSUITE\DEVICE_SUPPORT\F2802x\v230\F2802x_Examples_structs</s>2802

    此致,
    Gautam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hİ Gautam
    没有特定数据可使PWM保持打开。 因此,我没有数据可供比较。 传输的数据可能会发生变化,但如果主传输任何数据,从属设备将继续生成PWM。 İf没有收到数据,从属必须结束PWM生成。 在SCI引用指南中,系统复位将清除SCIRXBUF。 在这种情况下,我如何保证不会读取旧数据。 我没有机会进入实验室并检查我的程序,所以我想确保代码正常工作。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用(SCI)中断来检查数据是否为最新数据。 检查相应的标志以跟踪数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Gautam
    我成功通过了SCI传输,但我有一个问题。 第一次尝试时,我没有添加该代码,我观察到它没有传输;

    SciaRegs.SCICTL1.all =0x0023; //从重置中放弃SCI

    但是,当我添加它时,我的代码开始传输。 我想知道它是如何运作的。 我不了解SWRESET信号的创建方式和来源。 我认为有必要添加,但为什么?

    您是否介意我让您解释一下?

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

    \n但是,当我添加它时,我的代码开始传输。 我想知道它是如何运作的。 我不了解SWRESET信号的创建方式和来源。 我认为有必要添加,但为什么?[/QUOT]

    您是否通过了此注册? 如果您检查SCI初始化,SWRESET将初始化为0,SCI在复位时保持。

    SciaRegs.SCICTL1.all =0x0003; 

    然后,寄存器被初始化,最后我们需要从“重置”中放弃SCI模块:

    SciaRegs.SCICTL1.all =0x0023; 

    此致,

    Gautam