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.

[参考译文] MSP432P401R:UART驱动程序未保存数据长度

Guru**** 2609955 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/660975/msp432p401r-uart-driver-is-not-saving-datalength

部件号:MSP432P401R

TI驱动程序不支持7位数据长度。 我正在使用simplelink_msp432p4_sdk_1_60_00_12。 是否可以重建TI驱动程序库? 解决此问题的最佳方法是什么?

UARTMSP432.c, UARTMSP432_OPEN函数不会将dataLength参数传输到对象。 以下是1085至1112行以供参考:

/*
*存储UART参数并初始化外设。 这些用于
*打开或更改性能级别时重新初始化外围设备。
*/
object->state.readMode =参数->readMode;
object->state.writeMode =参数->writeMode;
object->state.readReturnMode =参数->readReturnMode;
object->state.readDataMode =参数->readDataMode;
object->state.writeDataMode = params->writeDataMode;
object->state.readEcho =参数->readEcho;
object->readTimeout =参数->readTimeout;
object->writeTimeout =参数->writeTimeout;
object->baudrate = params->baudrate;
object->stopbits =参数->stopbits;
object->parityType = params->parityType;
object->readFxns =
StaticFxnTable[object->state.readMode][object->state.readDataMode];
object->writeBuf =空;
object->readBuf = NULL;
object->writeCount = 0;
object->ReadCount = 0;
object->writeSize =0;
object->readSize =0;
object->state.writeCR =假;
object->state.txEnabled =假;
object->state.rxEnabled =真;
object->state.callCallback =假;
inithw (object,hwAttrs,clockFreq);

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

    感谢您将此事告知我们。 似乎此错误也出现在driverlib中。 我将为TI-Drivers和driverlib这两种产品提交一份错误报告,以便在将来的版本中修复。

    对于解决方法,在应用程序代码中,调用UART_OPEN ()后,请执行以下步骤:
    *禁用USCI模块
    *将UART设置为7位数据模式
    *启用USCI模块

    希望这能有所帮助!

    此致,
    SAI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sai,
    是否有方法可以重建TI驱动程序和Driverlib库? 我发现TI驱动器PWM功能存在另一个问题。 未正确设置期间。
    例如:
    SMCLK频率= 24MHz
    PWM频率= 6MHz
    使用TI驱动器时,实际频率为4.8MHz (SMCLK/5)。
    TAxCCR0寄存器应设置为3而不是4。
    谢谢!
    Jeffrey
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好Jeffrey:

    TI驱动程序可以使用命令行构建。 请参阅并更新“Imports.Mak”文件,以确保构建TI-Drivers所需的所有软件组件都位于预期位置。

    如果所有必要的组件都已正确安装,则以下步骤应构建TI驱动程序。
    *将目录更改为TI-Driver的文件夹
    *运行make

    请启动单独的线程以讨论PWM TI驱动器问题。 如果我们将太多的问题放到同一个线程中,当稍后引用此线程时,会让其他人感到非常困惑。

    谢谢!
    SAI