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.

[参考译文] TMS570LS1227:TMS570LS1227的 SCI2可以#39;t 正确发送数据!

Guru**** 2611705 points
Other Parts Discussed in Thread: TMS570LS1227

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/770888/tms570ls1227-sci2-of-tms570ls1227-can-t-send-data-correctly

器件型号:TMS570LS1227

大家好、我使用 TMS570LS1227的双通道 SCI 接口同时发送数据。 SCI/LIN 传输数据正常、但另一个 SCI 接口未正确发送、且其 TX 引脚始终为低电平! 有谁可以回答这个问题? 非常感谢!

以下是初始化完成后我的代码和相关寄存器的内容。

空 sciInit (空)

  /**@b intalise @b SCI1 */

  /**-使 SCI 退出复位*/

  sciREG1->GCR0 = 1U;

        

  /**-禁用所有中断*/

  sciREG1->CLRINT  = 0xFFFFFFFF;

  sciREG1->CLRINTLVL = 0xFFFFFFFF;

 

  /**-全局控制1 */

  sciREG1->GCR1 =(1 << 25)//启用传输*/

                |(1 << 24)//启用接收*/

                |(1 << 5)  /*内部时钟(器件没有时钟引脚)*/

                |(0 << 4)  /*停止位数*/

                |(0 << 3)  /*偶数奇偶校验、否则为奇数*/

                |(0 << 2)  /*启用奇偶校验*/

                |(1 << 1)  /*异步计时模式*/

                |(0 < 0);

                  

  sciREG1->GCR1 = 0x03000022;

  /**-设置波特率*/

  sciREG1->baud = 259;    /* 19.2kHz,波特率*/

  

  /**-传输长度*/

  sciREG1->length = 7;/* length 为7+1 */

 

  /**-设置 SCI 引脚功能模式*/

  sciREG1->fy =(1 << 2)/* TX 引脚*/

                |(1 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

                                    

  /**-设置 SCI 引脚默认输出值*/

  sciREG1->DOUT =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚输出方向*/

  sciREG1->DIR =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚开漏使能*/

  sciREG1->ODR =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚上拉/下拉使能*/

  sciREG1->PD =(0 << 2)/* TX 引脚*/

              |(0 << 1)/* Rx 引脚*/

              |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚上拉/下拉选择*/

  sciREG1->PSL =(1 << 2)/* TX 引脚*/

                |(1 << 1)/* Rx 引脚*/

                |(1);/* clk 引脚*/

 

  /**-设置中断级别*/

  sciREG1->SETINTLVL =(0 << 26)/*帧错误*/

                      |(0 < 25)/*溢出错误*/

                      |(0 < 24)/*存在毛利错误*/

                      |(0 << 9)  /*接收*/

                      |(0 < 8)  /*发送*/

                      |(0 << 1)  /*唤醒*/

                      |(0);      /*中断检测*/

 

  /**-设置中断使能*/

  sciREG1->SETINT =(0 << 26)/*帧错误*/

                  |(0 < 25)/*溢出错误*/

                  |(0 < 24)/*存在毛利错误*/

                  |(1 << 9)  /*接收*/

                  |(0 << 1)  /*唤醒*/

                  |(0);/*中断检测*/

 

  /**-设置中断使能*/

  sciREG1->CLRINT =(0 << 26)/*帧错误*/

                  |(0 < 25)/*溢出错误*/

                  |(0 < 24)/*存在毛利错误*/

                  |(0 << 9)/*接收*/

                  |(0 << 1)/*唤醒*/

                  |(0);/*中断检测*/

 

 

  /**- inialise 全局传输变量*/

  // g_sciTransfer[0]。mode  = 0 << 8;

  // g_sciTransfer[0].length = 0;

 

  /**-最终启动 SCI1 */

  sciREG1->GCR1 |= 0x80;

                                    

        /**@b intalise @b SCI2 */       

  /**-使 SCI 退出复位*/   

  sciREG2->GCR0 = 1U;

        

  /**-禁用所有中断*/

  sciREG2->CLRINT  = 0xFFFFFFFF;

  sciREG2->CLRINTLVL = 0xFFFFFFFF;

                                    

        tmp_reg = sciREG2->DIN;

 

  /**-全局控制1 */

  sciREG2->GCR1 =(1 << 25)//启用传输*/

                |(1 << 24)//启用接收*/

                |(1 << 5)  /*内部时钟(器件没有时钟引脚)*/

                |(0 << 4)  /*停止位数*/

                |(0 << 3)  /*偶数奇偶校验、否则为奇数*/

                |(0 << 2)  /*启用奇偶校验*/

                |(1 << 1)  /*异步计时模式*/

                |(0 < 0);

                  

  sciREG2->GCR1 = 0x03000022;

  /**-设置波特率*/

  sciREG2->baud = 259;    /* 19.2kHz,波特率*/

  

  /**-传输长度*/

  sciREG2->length = 7;/* length 为7+1 */

                                    

        /**-设置 SCI 引脚功能模式*/

  sciREG2->fy =(1 << 2)/* TX 引脚*/

                |(1 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

                                    

  /**-设置 SCI 引脚默认输出值*/

  sciREG2->DOUT =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

  /**-设置 SCI 引脚输出方向*/

  sciREG2->DIR =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚开漏使能*/

  sciREG2->ODR =(0 << 2)/* TX 引脚*/

                |(0 << 1)/* Rx 引脚*/

                |(0);/* clk 引脚*/

                                    

        /**-设置 SCI 引脚上拉/下拉使能*/

  sciREG2->PD =(0 << 2)/* TX 引脚*/

              |(0 << 1)/* Rx 引脚*/

              |(0);/* clk 引脚*/

 

  /**-设置 SCI 引脚上拉/下拉选择*/

  sciREG2->PSL =(1 << 2)/* TX 引脚*/

                |(1 << 1)/* Rx 引脚*/

                |(1);/* clk 引脚*/

                                    

  /**-设置中断级别*/

  sciREG2->SETINTLVL =(0 << 26)/*帧错误*/

                      |(0 < 25)/*溢出错误*/

                      |(0 < 24)/*存在毛利错误*/

                      |(0 << 9)  /*接收*/

                      |(0 < 8)  /*发送*/

                      |(0 << 1)  /*唤醒*/

                      |(0);      /*中断检测*/

 

  /**-设置中断使能*/

  sciREG2->SETINT =(0 << 26)/*帧错误*/

                  |(0 < 25)/*溢出错误*/

                  |(0 < 24)/*存在毛利错误*/

                  |(1 << 9)  /*接收*/

                  |(0 << 1)  /*唤醒*/

                  |(0);/*中断检测*/

 

  /**-设置中断使能*/

  sciREG2->CLRINT =(0 << 26)/*帧错误*/

                  |(0 < 25)/*溢出错误*/

                  |(0 < 24)/*存在毛利错误*/

                  |(0 << 9)/*接收*/

                  |(0 << 1)/*唤醒*/

                  |(0);/*中断检测*/

 

  /**- inialise 全局传输变量*/

  // g_sciTransfer[0]。mode  = 0 << 8;

  // g_sciTransfer[0].length = 0;

        tmp_reg = sciREG2->DIN;

  /**-最终启动 SCI2 */

  sciREG2->GCR1 |= 0x80;

 

 

 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我正在关闭此主题,因为它与 您发布的 e2e.ti.com/.../770892相同。
    请使用上面的链接中的一个。

    此致、
    米罗