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.

[参考译文] MSP430FR6047:我得到的体积流量为零

Guru**** 2390925 points
Other Parts Discussed in Thread: MSP430FR6047

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1055063/msp430fr6047-i-am-getting-volume-flow-is-zero

器件型号:MSP430FR6047

各位专家:

目前、我正在使用超声波水表、我们已经为此开发设计了定制板、这种情况还不错、但我 有几个疑问、无法找到解决我的问题的解决方案。

我已将 CP2102 USB 连接到 TTL 驱动器、以便通过 Hercules 软件读取仪表数据、但我没有从控制器中获得任何值、请帮助将体积流量和每小时电流速传输到串行终端。

2.我已查看以下示例  

C:\ti\MSP\USS_02_40_00_00\USS\examples\USSSWLib_template_example

我已经通过 Hercules 软件连接了我的 CP2102 (USB 到 TTL 驱动程序)、我选择了特殊字符设置中的十六进制格式、但 我收到了垃圾邮件、我附上了屏幕截图供您参考  

3.上面的例子没有显示 LCD 上的值、以及如何启用 LCD 功能、如流速和体积流

我已经检查了 MSP430FR6047_USS_Water 演示示示例此示例显示了 LCD 中除体积流量外的所有值、因为流速随管道中的水流量而变化、但体积流量显示为零、我如何在此  MSP430FR6047_USS_Water 演示示例中启用此体积流量启用功能、  

我尝试通过 以下步骤将 LCD 数据从 MSP430FR6047_USS_Water 演示示示例传输到 UART

我已取消注释以下行以启用 UART

#include "UART.h"

#if (UART_ENABLE=true)

并根据  hal_uart.h 上的下一行选择波特率57600

/*! 定义串行通信*使用的 UART 波特率
#define HAL_UART_BAUDRATE (57600)

但是、我在 Hercules 软件中什么都没有得到、请指出我的错误、并引导我将流数据作为字符串发送到 UART、例如、Volume flow=500L、flow rate =5.400kl

如果我使用 USS 软件将电路板连接到 LCD 显示音量流但未存储在 FRAM 中的 USS 软件、则在器件复位后它将变为零、如何将音量流永久存储在 MSP430fr6047 FRAM 存储器中、  

在 results.c 中使用以下函数是什么

// Scale the Volume data based upon the correct Flow Rate unit
if(GPM == g_ResultsOfLastMeasurement.FR_unit)
{
    return (float)( ( (float)g_ResultsOfLastMeasurement.last_FlowRate *
    (float)rate ) / ( (float) MILLISECONDS_IN_MIN) );
}
else
{
    return (float)( ( (float)g_ResultsOfLastMeasurement.last_FlowRate *
    (float)rate ) / ( (float) MILLISECONDS_IN_HOUR) );
}

此致

Surya

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

    您好 Surya、

    有人告诉我 Eddie LaCost 已转到 TI 的另一个业务部门、因此 让我看看我是否能找到另一位 USS 专家、这对您的情况有所帮助。  我将尝试在24小时内得到您的回复。

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

    您好

    感谢您的答复、请您做必要的事情

    此致

    Surya

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

    您好 Surya、

    很抱歉耽误你的时间。  我正在尝试找到可以帮助解决您的问题的人。

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

    您好

    感谢您的支持、那么我只需要执行3个步骤  

    1.显示液晶屏的音量。

    2.在 FRAM 中存储/读取该卷流、

    3.将这些 AVG 流速和流量作为字符串传输到 UART。

     我是 TI RTOS 的新手、因此在没有您的支持的情况下执行以下步骤时我会有点困惑、因此请尽快执行必要的操作

    我正在使用 MSP430-FR6047-USS-Water 演示示示示示例项目、该项目包含 LCD 和 UART 代码、LCD 显示 DTOF、根据管道中的水流计算平均流速和流速、但体积流速始终为零、 但该示例具有基于 GAP_UPS_UPS 的体积浮动计算

     在以下代码被执行时、此值更新

    #ifdef ENABLE_LCD
    if (true!= lcd_statemachine_isSleep ())

    Results_Update (alg_results_float.deltaTOF、
    ALG_Results_float.volumeFlowRate、
    DC_User_Params->GAP_ups_ups);

    lcd_statemachine_stateUpdate();
    lcd_statemachine_stateAction();
    #endif

    来自 HMI.c 和  

    void results_Update (float dtofData、float volrateData、uint16_t rate)

    //如果需要,重置索引
    if (X_NUM_MEASINS = datapeintIndex)

    datapointIndex = 0;

    //将每个结果统计数据和数据点更新为最后一个
    //测量数据
    G_ResultsOfLastMeasurement.last_dtof = dtofData;
    G_ResultsOfLastMeasurement.LAST_X_dtofMeasurements[datapeintIndex]=
    G_ResultsOfLastMeasurement.last_dtof;
    G_ResultsOfLastMeasurement.avg_dtof =
    Mathemata_CalcAverageflt ((float*)&g_ResultsOfLastMeasurement.Last_X_dtofMeasurements、
    (uint16_t) X_NUM_measurements);
    G_ResultsOfLastMeasurement.STDev_dtof =
    Mathemata_CalcStDevflt ((浮点*)&g_ResultsOfLastMeasurement.Last_X_dtofMeasurements、
    G_ResultsOfLastMeasurement.avg_dtof、
    (uint16_t) X_NUM_measurements);

    G_ResultsOfLastMeasurement.LAST_flowrate = volrateData;
    G_ResultsOfLastMeasurement.LAST_X_FlowRateMeasurements[datapeintIndex]=
    G_ResultsOfLastMeasurement.LAST_flowrate;
    G_ResultsOfLastMeasurement.avg_flowrate =
    Mathemata_CalcAverageflt ((float*)&g_ResultsOfLastMeasurement.Last_X_FlowRateMeasurements、
    (uint16_t) X_NUM_measurements);

    G_ResultsOfLastMeasurement.LAST_VOLUME += resultsCalcVolume (RATE);

    #ifdef ENABLE_ADC
    G_ResultsOfLastMeasurement.BatteryPercentageStamp =
    HAL_ADC_voltagesupple_readmV ();
    G_ResultsOfLastMeasurement.BatteryPercentageStamp =
    MATH_CalcPercentage (BATVOLTAGE_MIN、BATVOLTAGE_MAX、
    G_ResultsOfLastMeasurement.BatteryPercentageStamp);

    // g_ResultsOfLastMeasurement.temp = hal_adc_tempsensor_readCelsius ();

    // g_ResultsOfLastMeasurement.DateAndTimeStamp =
    #endif
    datapeintIndex++;

    浮点结果 CalcVolume (uint16_t rate)

    //根据正确的流速单位缩放体积数据
    if (GPM = g_ResultsOfLastMeasurement.FR_UNIT)

    return (float)(((float) g_ResultsOfLastMeasurement.last_flowrate *
    (浮点数)比率)
    /((float) milliseconds_in_min);

    其他

    return (float)(((float) g_ResultsOfLastMeasurement.last_flowrate *
    (浮点数)比率)
    /((浮点) milliseconds _in_hour));

    从 results.c 中、

    在这里、我无法理解为什么这个递增的值没有更新到 LCD、我已经附加了 USS 软件配置供您参考、我已经生成了标头、并从示例文件夹中替换了这些标头、

    2.我已经从给定的示例中启用了 UART、但无法从控制器中获取任何值、请说明我如何以串的形式传输 AVG 和流量、

    3、如何将这些值存储/读取到 FRAM 中、以下链接提供了 FRAM 写入示例、但如果不对存储器数据执行 ping 操作、如何知道写入的数据是否正确。 因此、请帮助解决上述三个步骤。

    https://dev.ti.com/tirex/explore/node?node=AHzlGE0Yg2pMJ5uaDkZgAg__IOGqZri__LATEST&search=MSP430FR6047

    此致

    Surya

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

    您好 Surya、

    我们的 USS 专家将在今年的剩余时间内外出、我没有其他人需要帮助、因此请耐心等待、我将尽力找出问题所在。  我还在尝试找到 FR6047 EVM。

    我可以帮助您在 FRAM 中存储数据。  我附加了一个非常简单的示例、展示了如何将数据存储在主 FRAM 存储器或信息存储器中以及如何启用/禁用写入。  我不确定您说"如果不对存储器数据执行 ping 操作、您不知道数据是否正确写入"是什么意思、但您可以立即写回并读回以验证值是否正确。  启用后、您可以像 RAM 一样对 FRAM 进行读取和写入。

    这里有一个适用于任何 MSP430 FRAM MCU 的代码示例。  您可能需要使用不同的存储地址、具体取决于您的设备。

    #include <msp430.h> 
    #include <stdint.h>
    
    /*
     * Notes: By default both data and program FRAM memory is enabled and must be
     * disabled in order to write to these sections.
     * For more information on this topic see section 5.12.22
     * www.ti.com/.../slau132v.pdf
     *
     * Noinit and persistent variables behave identically with the exception of
     * whether or not they are initialized at load time.
     * The NOINIT pragma may be used only with uninitialized variables. It
     * prevents such variables from being set to 0 during a reset.
     * It may be used in conjunction with the LOCATION pragma to map variables
     * to special memory locations, like memory-mapped registers, without
     * generating unwanted writes.
     * The PERSISTENT pragma may be used only with statically-initialized variables.
     * It prevents such variables from being initialized during a reset.
     * Persistent variables disable startup initialization; they are given an
     * initial value when the code is loaded, but are never again initialized.
     * By default, noinit or persistent variables are placed in sections
     * named .TI.noinit and .TI.persistent, respectively. The location of these
     * sections is controlled by the linker command file. Typically .TI.persistent
     * sections are placed in FRAM for devices that support FRAM and .TI.noinit sections
     * are placed in RAM.
     */
    /*
     * Some easy to use #defines
     */
    #define DISABLE_PF_WRITE_PROTECT        SYSCFG0 = FRWPPW | DFWP
    #define DISABLE_DF_WRITE_PROTECT        SYSCFG0 = FRWPPW | PFWP
    #define DISABLE_PF_DF_WRITE_PROTECT     SYSCFG0 = FRWPPW
    #define DISABLE_ALL_WRITE_PROTECT       SYSCFG0 = FRWPPW
    
    #define ENABLE_PF_WRITE_PROTECT         SYSCFG0 = FRWPPW | PFWP
    #define ENABLE_DF_WRITE_PROTECT         SYSCFG0 = FRWPPW | DFWP
    #define ENABLE_PF_DF_WRITE_PROTECT      SYSCFG0 = FRWPPW | PFWP | DFWP
    #define ENABLE_ALL_WRITE_PROTECT        SYSCFG0 = FRWPPW | PFWP | DFWP
    
    /*
     * Example
     * Declare variable 'peanut' persistent in Info memory at location 0x1800.
     * (initialize only once at load time = 0)
     *
     */
    #pragma PERSISTENT(peanut)
    #pragma LOCATION(peanut, 0x1800)
    uint16_t peanut = 0;
    
    /*
     * Example
     * Declare variable 'peach' persistent in Program memory at location 0xE000.
     * (initialize only once at load time = 0x1234)
     *
     */
    #pragma PERSISTENT(peach)
    #pragma LOCATION(peach, 0xE002)
    uint16_t peach = 0x1234;
    
    
    /*
     * Example
     * Declare variable 'apple, compiler will place automatically
     * (initialize only once at load time = 0x55AA)
     */
    #pragma PERSISTENT(apple)
    uint16_t apple = 0x55AA;
    
    /*
     * Example
     * Declare variable 'walnut' noinit in Info memory at location 0x1802.
     * (is not initialized at reset)
     *
     */
    #pragma NOINIT(walnut)
    #pragma LOCATION(walnut, 0x1802)
    uint16_t walnut;
    
    uint16_t SYSCFG0_copy;
    
    int main(void)
    {
    	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
    
    	SYSCFG0_copy = SYSCFG0 & (PFWP | DFWP);     // let's first confirm FRAM protection is on by default
    
    	peanut = 1;                                 // won't work because DFWP is enabled by default
    
    	DISABLE_DF_WRITE_PROTECT;					// so must first disable DFWP (DATA FRAM WRITE PROTECT)
    
    	peanut = 1;                                 // this time it worked
    
    	walnut = 2;                                 // verify we can change walnut
    
    	apple = 0x55AA;                             // won't work because PFWP is enabled by default
    
    	DISABLE_PF_WRITE_PROTECT;					// must first disable PFWP (PROGRAM FRAM WRITE PROTECT)
    
    	apple = 0xAA55;                            // this time it worked
    	
    	peach = 0;                                 // verify we can change peach
    
    	ENABLE_ALL_WRITE_PROTECT;                 // Don't forget to protect when done.
    
    	while(1);
    
    }
    

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

    您好 Surya、

    我们的 USS 专家将在今年的剩余时间内外出、我没有其他人需要帮助、因此请耐心等待、我将尽力找出问题所在。  我还在尝试找到 FR6047 EVM。

    我可以帮助您在 FRAM 中存储数据。  我附加了一个非常简单的示例、展示了如何将数据存储在主 FRAM 存储器或信息存储器中以及如何启用/禁用写入。  我不确定您说"如果不对存储器数据执行 ping 操作、您不知道数据是否正确写入"是什么意思、但您可以立即写回并读回以验证值是否正确。  启用后、您可以像 RAM 一样对 FRAM 进行读取和写入。

    这里有一个适用于任何 MSP430 FRAM MCU 的代码示例。  您可能需要使用不同的存储地址、具体取决于您的设备。

    #include <msp430.h> 
    #include <stdint.h>
    
    /*
     * Notes: By default both data and program FRAM memory is enabled and must be
     * disabled in order to write to these sections.
     * For more information on this topic see section 5.12.22
     * www.ti.com/.../slau132v.pdf
     *
     * Noinit and persistent variables behave identically with the exception of
     * whether or not they are initialized at load time.
     * The NOINIT pragma may be used only with uninitialized variables. It
     * prevents such variables from being set to 0 during a reset.
     * It may be used in conjunction with the LOCATION pragma to map variables
     * to special memory locations, like memory-mapped registers, without
     * generating unwanted writes.
     * The PERSISTENT pragma may be used only with statically-initialized variables.
     * It prevents such variables from being initialized during a reset.
     * Persistent variables disable startup initialization; they are given an
     * initial value when the code is loaded, but are never again initialized.
     * By default, noinit or persistent variables are placed in sections
     * named .TI.noinit and .TI.persistent, respectively. The location of these
     * sections is controlled by the linker command file. Typically .TI.persistent
     * sections are placed in FRAM for devices that support FRAM and .TI.noinit sections
     * are placed in RAM.
     */
    /*
     * Some easy to use #defines
     */
    #define DISABLE_PF_WRITE_PROTECT        SYSCFG0 = FRWPPW | DFWP
    #define DISABLE_DF_WRITE_PROTECT        SYSCFG0 = FRWPPW | PFWP
    #define DISABLE_PF_DF_WRITE_PROTECT     SYSCFG0 = FRWPPW
    #define DISABLE_ALL_WRITE_PROTECT       SYSCFG0 = FRWPPW
    
    #define ENABLE_PF_WRITE_PROTECT         SYSCFG0 = FRWPPW | PFWP
    #define ENABLE_DF_WRITE_PROTECT         SYSCFG0 = FRWPPW | DFWP
    #define ENABLE_PF_DF_WRITE_PROTECT      SYSCFG0 = FRWPPW | PFWP | DFWP
    #define ENABLE_ALL_WRITE_PROTECT        SYSCFG0 = FRWPPW | PFWP | DFWP
    
    /*
     * Example
     * Declare variable 'peanut' persistent in Info memory at location 0x1800.
     * (initialize only once at load time = 0)
     *
     */
    #pragma PERSISTENT(peanut)
    #pragma LOCATION(peanut, 0x1800)
    uint16_t peanut = 0;
    
    /*
     * Example
     * Declare variable 'peach' persistent in Program memory at location 0xE000.
     * (initialize only once at load time = 0x1234)
     *
     */
    #pragma PERSISTENT(peach)
    #pragma LOCATION(peach, 0xE002)
    uint16_t peach = 0x1234;
    
    
    /*
     * Example
     * Declare variable 'apple, compiler will place automatically
     * (initialize only once at load time = 0x55AA)
     */
    #pragma PERSISTENT(apple)
    uint16_t apple = 0x55AA;
    
    /*
     * Example
     * Declare variable 'walnut' noinit in Info memory at location 0x1802.
     * (is not initialized at reset)
     *
     */
    #pragma NOINIT(walnut)
    #pragma LOCATION(walnut, 0x1802)
    uint16_t walnut;
    
    uint16_t SYSCFG0_copy;
    
    int main(void)
    {
    	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
    
    	SYSCFG0_copy = SYSCFG0 & (PFWP | DFWP);     // let's first confirm FRAM protection is on by default
    
    	peanut = 1;                                 // won't work because DFWP is enabled by default
    
    	DISABLE_DF_WRITE_PROTECT;					// so must first disable DFWP (DATA FRAM WRITE PROTECT)
    
    	peanut = 1;                                 // this time it worked
    
    	walnut = 2;                                 // verify we can change walnut
    
    	apple = 0x55AA;                             // won't work because PFWP is enabled by default
    
    	DISABLE_PF_WRITE_PROTECT;					// must first disable PFWP (PROGRAM FRAM WRITE PROTECT)
    
    	apple = 0xAA55;                            // this time it worked
    	
    	peach = 0;                                 // verify we can change peach
    
    	ENABLE_ALL_WRITE_PROTECT;                 // Don't forget to protect when done.
    
    	while(1);
    
    }
    

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

    您好、Surya、我已经编写了一些 UART 代码、这些代码将您选择的任何数据传输到 PC。  在我进行一些测试后、我很快就会发布它。

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

    您好

    感谢您的努力和支持、我在上面的程序中找不到写入和读取功能、然后我在论坛中提出了另一个主题、有一个很好的人建议以下示例  

    https://dev.ti.com/tirex/explore/node?node=AHzlGE0Yg2pMJ5uaDkZgAg__IOGqZri__LATEST&search=MSP430FR6047

    该示例具有写入函数、但我在这里找不到读取函数、然后该示例仅显示了 FRAM 中存储的十六进制数据、但如何向 FRAM 写入数据以及如何读取该数据以交叉验证数据或避免仪表读取 数据丢失。  

    此致

    Surya

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

    您好 Surya、

    无需读取或写入函数即可写入 FRAM。  您将 FRAM 视为 RAM、只需读取或写入变量即可。

    例如、指令:核桃= 2、将值2写入名为"核 桃"的 FRAM 位置。  这非常简单。  不要使它变得复杂。 再看一下上面的示例。

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

    您好

    感谢您的回复、是的、以上示例具有 FRAM 写入函数

    #pragma PERSISTENT (花生)
    #pragma LOCATION (花生、0x1800)
    uint32_t 花生= 0;

    uint16_t SYSCFG0_copy;

    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    SYSCFG0_COPY = SYSCFG0 &(PFWP | DFWP);

    disable_DF_WRITE_PROTECT;  

    花生= 94967295

    while (1)

    在这里、我的疑问是如何读取花生值、 因为我要将总流量值写入 FRAM、所以当我将该总流量值写入 FRAM 时、我的控制器总流量值在复位微控制器时变为零。如果我将该总流量值写入 FRAM、我可以从 FRAM 中读取总流量值、以避免先前的总值 损耗。

    或  

    以下代码首次将花生值存储到 FRAM 中、因为 FRAM 值最初为零、然后假设我已重置模块 、结果值为 94967295或0、请检查以下代码

    #pragma PERSISTENT (花生)
    #pragma LOCATION (花生、0x1800)
    uint32_t  花生= 0;

    uint16_t SYSCFG0_copy;

    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    SYSCFG0_COPY = SYSCFG0 &(PFWP | DFWP);

    disable_DF_WRITE_PROTECT;  

    如果(花生=94967295)? UART_PRINT ("FRAM Read Success");: 花生= 94967295;

    while (1)

    我希望您了解我尝试使用 FRAM 执行的操作、

    此致

    Surya

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

    您好 Surya、

    是的、您的代码正确。

    DISABLE_DF_WRITE_PROTECT; 
    
    if (peanut==94967295) ? uart_print("FRAM READ SUCCESS"); : peanut = 94967295;
    
    while(1)

    当您将变量存储在 FRAM 中时、它们会在下电上电周期内保持其值。  这就是 FRAM 的美妙之处。  将其视为非易失性 RAM。

    这里是"花生"的定义。  persistent 告诉编译器此变量将位于 FRAM 中、而不是 RAM 中。  位置指示编译器将其放置在 FRAM 存储器位置0x1800中、并且将花生初始化为零。  这意味着、当对 MCU 进行编程时、花生将为0。

    #pragma PERSISTENT (花生)
    #pragma LOCATION (花生、0x1800)
    uint16_t 花生= 0;

    要查看这是否起作用、请按照对 MCU 进行编程的示例中所示分配花生= 0。 在 main()的早期阅读花生并发送到 PC。  该值应为0。  读了花生后、有一条指令设定花生=某种值、比如0x55AA。  重启电源、您应该会在 PC 上看到新值(0x55AA)。

    我还联系了我们的 USS 工程师、他表示没有内置方法将流数据发送到 PC。  这是可以的、因为我已经了解了这一点、它正在工作。  困难的任务是将非常非常小的浮点值转换为 ASCII、以便将其发送到 PC。  他的建议是将它们转换为整数、但如果您希望0.1升/小时、这将是0。  我将很快发布一个示例。

    此外、您说流量始终为0。  您在 LCD 上看到这种情况吗?  你有流水吗? 当您使用设计中心时、是否看到任何错误?  您是否正确设置了传感器之间距离的 UPS 和 DPS 间隙? 您是否有良好的波形捕获?

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

    您好 Surya、

    好的、这是另一个更新。  我们的 USS 工程师说我使用了错误的代码示例。  他说,有一个模板项目“FR6047Lib_template_example”,它在 main()函数中具有用于将数据传输到 PC 的功能。  您在 main.c 的44-49行中看到这一点吗?

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

    您好 

    感谢您的更新和努力、是的、我已经检查了上面的示例、我在 Hercules 软件中得到了垃圾值、我已经将 MSP430fr6047连接到 CP2102驱动程序、并且我更改了特殊字符的字符显示设置- >十六进制,请查看本主题的顶部问题,我已附上 Hercules 输出屏幕快照供您参考,请检查以上屏幕快照,并告诉我如何解决此问题,

    我很快将分享我的 USS 软件设置和输出、供您参考、

    此致

    Surya

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

    您好 Surya、

    我已经编写了一些简单的代码和指令、允许您使用 EVM 板上的反向通道 UART 将生成的 USS 测量值发送到 PC。  代码使用浮点结果并将其转换为 ASCII 字符、以便它们能够正确地显示在 PC 上。  请尝试一下、并告诉我它是否适合您。

    e2e.ti.com/.../USS-support_5F00_send_5F00_data_5F00_to_5F00_PC.zip

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

    您好

    感谢您的大力支持、我将检查此代码并尽快告知您结果  

    此致

    Surya

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

    您好 Surya、

    我从您那里听说过几天,因此我假设您能够解决您的问题。
    如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。