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.

[参考译文] LAUNCHXL-CC3235S:IWR6843-ISK MMWAVEICBOOST 和 CC3235S 上的 UART 数据端口和 UART CLI 端口(TIDA-010022参考)

Guru**** 2540840 points
Other Parts Discussed in Thread: MMWAVEICBOOST, TIDA-010022, IWR6843, CC3235S, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/909663/launchxl-cc3235s-uart-data-port-and-uart-cli-port-on-iwr6843-isk-mmwaveicboost-and-cc3235s-tida-010022-reference

器件型号:LAUNCHXL-CC3235S
主题中讨论的其他器件:MMWAVEICBOOSTIWR6843CC3235SSysConfigTIDA-010022

 TI 的 TIDA-010022文档中、它提到了2个 UART 端口(数据端口和 CLI 端口)。 正如我看到的、MMWAVEICBOOST 仅使用 XDS110 USB 端口进行 UART 数据传输/图像刷写、CC3235仅在20引脚接头连接器上具有 UART RX/TX 引脚。 那么、每个模块上的 UART 数据端口和 UART CLI 端口是什么?

2.以前,我只通过 UART (MMWAVEICBOOST 上的 XDS110 USB 端口)将配置发送到 IWR6843。 为什么我需要根据本文档从 wifi 模块发送 Cfg? Cfg 位于 PC 中、因此我不知道 CC3235如何将 Cfg 发送到 IWR6843。

请向我展示照片中2个 UART 端口的位置以及如何将 Cfg 从 CC3235发送到 IWR6843 (为什么无法从 PC 发送?)

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

    Hector、您好!

    1. 毫米波利用一个 Tx/Rx 对进行配置、另一个 Tx 用于数据输出。 默认情况下、这两个引脚都路由到 XDS110、您可以使用开关设置将它们路由到 GPIO 引脚。 根据 EVM 用户指南、MSS_logger 是数据 Tx 输出、RS232 Rx 和 Tx 用于 CLI/CONFIGURATION。
    2. 器件需要 Cfg 才能知道如何运行。 通常、可视化工具会从 PC 发送它、但现在您已连接到 WiFi/sub-1g、因此您仍然需要发送器件配置、但现在必须通过 WIFI。 CLI 只是一个 UART 接口、因此 CC1352不能这么做是没有原因的。

    此致、

    Justin

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

    您好 Justin、

    1.我检查了2个模块的数据表

    IWR6843 连接在 MMWAVEICBOOST 上。 J5连接器有2个引脚:引脚5是 RS232 (来自 xWR 器件的 TX)、引脚7是 RS232 (来自 xWR 器件的 RX)。 如前所述、这2个引脚用于 Cfg 传输、对吧?

    CC3235S:原理图显示了以下2对 UART 引脚(引脚3、4、31、32)。 但是、当我使用 SysConfig 进行引脚设置时、会在不同的引脚编号上分配 UART 引脚。 您可以在此处看到 SysConfig 上的引脚设置:TX 引脚是 P62、RX 引脚是 P45。 因此、我想这个引脚编号不是固定的、我们必须根据 SysConfig 上的引脚设置进行连接、对吧?

    因此、根据 SysConfig 中的 CC3235S 引脚设置、我必须这样进行连接

    MMWAVEICBOOST    CC3235S

    J5上的引脚5             P45.

    J5上的引脚7             P62.

    GND (J5上的引脚4)        GND (引脚20或22)

    我是对的吗?

    但上面仅是用于配置的 UART 引脚。 我是否应该将 MMWAVEICBOOST 上的 MSS_LOGGER 引脚连接到 CC3235上的哪个引脚? 我是否需要在 CC3235上初始化2个 UART 端口? 据我了解、CC3235 (引脚 P58)上的 UART0_TX 连接到 MMWAVEICBOOST 上的 MSS_LOGGER 以进行雷达数据输出、而在我编写上述内容时、CLI/Cfg 会进行连接。  

    TIDA-010022中的模型是 CC1352收集器、它通过 UART 连接到 PC。 这是否意味着我们将 Cfg 从 PC 传输到 CC1352收集器、然后将 Cfg 传输到 CC1352传感器节点并发送到 IWR6843?

    3.是否需要为 MMWAVEICBOOST 和 CC3235 UART 通信配置多路复用器、如下所示?

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

    Hector、您好!

    1. RS232针脚连接正确。 您应该在 CCxxxx 板上配置单独的 UART Rx 以接收来自 MSS_LOGGER UART 引脚的数据。

    2.我相信这是设计的目的。 但是、快捷方式是让 IWR6843在启动时自行配置、然后您只需收集数据并将其发回。

    3.确保您的设置与表1的第3列匹配。 EVM 用户指南中的内容。

    此致、

    Justin

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

    您好 Justin、

    SysConfig 执行包括 UART 和 UART2在内的引脚设置、如我在上面附加的照片(分别位于 CC3235数据表中的 UART1和 UART0)。 是否确认 UART2 (TX 引脚 P62、RX 引脚 P45)用于 RS232? 因此、我知道您是说 CC3235上的单独 UART RX 是用于从 MSS_logger 输出引脚读取数据的 UART Rx 引脚 P59、对吧? 如果我想从外部器件读取数据、如何在 MMWAVEICBOOST 上读取 UART RX 引脚?

    2.我可以为 RS232选择 UART1还是为 RS232选择 UART0? 它是否固定为 UART0?

    3.您提到了先将 Cfg 发送到 IWR6843的快捷方式。 在这种情况下、我们不需要通过 RS232引脚将 MMWAVEICBOOST 连接到 CC3235、对吧? 因为这2个引脚仅用于配置传输。

    我看到 TIDA-010022提到了 Cfg 参数 lowpower 0和 pointCloudEn 0。 请告诉我2件事:

    4.1如何将 Cfg 从 PC 发送到 CC3235收集器再发送到 IWR6843?

    4.2.我需要完整的 Cfg 参数文件、以便在启动时直接发送到 IWR6943。

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

    Hector、您好!

    在本主题中、我无法回答与 CC3235相关的问题、我相信您还有另一个与该团队相关的主题。

    1和2:从 IWR6843的角度来看、这些是 UART、因此只要将 Tx 连接到 Rx、您就可以将其配置为执行所需的任何操作。 因此、您需要向 IWR6843发送命令:

    1. 命令位于内存中、您有一个指向它的指针 ,并且您具有以字节为单位的命令长度
      1. 命令由"\r\n"终止、以便 CLI 模块将接受该命令。 (实际上是 Cfg 文件中的整行代码)
    2. 假设您有一个与毫米波 UART API 类似的 API、则会调用 UART_write( 、 )
      1. 这将成为 UART_WRITE (command、com_len)

    如果您自行配置 IWR6843、它将在启动时自动配置。 那么您不必担心 CLI。 您只需要 MSS_logger。

    这实际上只是一个数据传输。 该器件已设置为进行 CLI/UART 通信、因此配置该器件的最简单方法是让 CC3235通过 UART 将配置发送到 IWR6843。 因此 CC3235需要进行配置。 您可以使用 WiFi/其他连接将 cfg 从一个 CC3235发送到另一个 CC3235。 它如下所示:

    PC -> CC3235 -> CC3235 -> IWR6843

    此致、

    Justin

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

    您好 Justin、

    我看到 IWR6843 EVM 的引脚配置表是 MSS_UARTB_TX (也称为 MSS_LOGGER、对吧?) 可在任何球形引脚上配置:F14、H14、K13、N13、N5、 P10、P7。

    但是、无论 我们在上面选择哪种焊球引脚配置、mmWaveICBoost 的 J6连接器上的引脚9上的 MSS_logger 引脚布线位置仍然固定不变、对吧?

    2.您在另一个主题中向我发送了 TIDA-010022固件的 zip 文件(https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/910142)。 但该文件不包含 IWR6843的源代码、用于从 WiFi 模块读取配置并将跟踪数据发送到 WIFI 模块。 您能否向我发送该线程或该线程中 TIDA-010022的完整源代码? 因为我昨天看不到您在该主题中的回复。 目前、我通过补丁文件在 CCS 上构建了 CC1352R1项目、但在 TIDA-010022 zip 文件中只有 xwr68xx bin 文件。 我想查看源代码并对其进行修改。

    CC1352和 CC3235的 UART API 之间是否有任何差异? 我可以在 TIDA-010022设计中使用 UART 代码在 IWR6843和 CC3235传感器节点、CC3235收集器和 PC 之间进行数据传输吗? 如果 CC1352和 CC3235的 UART 存在一些差异、哪一个器件不同?

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

    Hector、您好!

    1. 是的。
    2. 答案: https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/910142/3368851#3368851
    3. 这是 WiFi 论坛的问题。

    此致、

    Justin

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

    您好 Justin、

    我使用示波器检查 MSS_LOGGER 引脚和引脚45 (CC3235上的 UART1_RX)上的信号。  MSS_LOGGER 电压始终处于高电平(约33~35V)。 这意味着雷达未成功初始化(尚未收到 Cfg 设置)。 请告诉我如何解决。 我之前问过一位 TI 成员、但他是新手、因此他的经验似乎比您少。 您是 TI 的一名高级工程师、希望您能帮我解决这个问题。 这里是我用于将 Cfg 从 CC3235S 发送 到 IWR6843 以及从 MSS_logger 引脚接收数据的代码。 之后、我将 mmwaveTaskInit();放在 CC3235S 项目的 main_tirtos.c 中。 如上所述、结果为6843未初始化。

    注意:我设置开关 S1.1~S1.12以启用 MMWAVEICBOOST 上的40引脚连接器、并为 IWR6843刷写演示代码。

    //#define debug_print
    #define MMWAVE_SENSOR 1
    
    #define MMWAVE_TASK_STACK_SIZE 1024
    #define MMWAVE_TASK_PRIORITY 1
    
    #define MMWAVE_COMMAND_DELAY 1000000 // 1秒
    #define MMWAVE_START_DELAY 20000000 // 20秒
    
    Task_Structt mmwaveTask;
    Char mmwaveTaskStack[mmwave_task_stack_size];
    
    Semaphore_handle 毫米波 SemHandle;
    Semaphore_Structm 毫米波 Semt;
    
    UART_Handle 毫米波 UartHandle;
    UART_Params mmwaveUartParams;
    UART_Handle mmwaveLoggerUartHandle;
    UART_Params mmwaveLoggerUartParams;
    
    uint8_t currentInterval = 0;
    volatile uint8_t SENSOR_Connected = 0;
    
    Smssgs_mmst SensorField_t latestMmwaveData;
    
    
    //更新了命令列表以显示"60Hz"(
    *命令列表)、"60hz (命令列表)(1)
    "通道配置15 5 0\r"、
    "adcCfg 2 1\r"、
    "adcbufCfg 0 1 1 \r"、
    "ProfileCfg 0 60.6 30 10 62 0 53 1 128 2500 0 30\r"、
    "线性调频脉冲配置0 0 0 0 0 0 0 0 1 \r\n、
    "线性调频脉冲配置1 1 0 0 0 0 0 4 \r\n "、
    "frameCfg 0 1 128 0 50 1 0\r"、
    "低功耗0 1\r"、
    "guiMonitor 1 0 0\r"、
    "CfarCfg 6 4 4 4 4 16 4 50 62 0\r"、
    "doaCfg 600 1875 30 1 0\r"、
    "SceneryParam -6 0.5 6\r"、
    "GatingParam 4 3 2 0\r"、
    "StateParam 10 5 100 100 5\r"、
    "AllocationParam 250 0.25 10 1 2\r"、
    "AccelerationParam 1 1\r\n"、
    "PointCloudEn 0\r"、
    "TrackingCfg 1 2 250 20 52 82 50 90\r\n"、
    "sensorStart\r\n"
    };
    
    void mmwaveTaskInit (void)
    {
    /*构造信标*/
    Semaphore_Params semParams;
    Semaphore_Params_init (semParams);
    Semaphore_construction (&mmwaveSemStruct, 0,&semParams);
    mmwavSemHandle = Semaphore_handle (&mmwavSemStruct);
    
    /*配置显示任务。 *
    Task_Params taskParams;
    Task_Params_init (&taskParams);
    taskParams.stack = mmwaveTaskStack;
    taskParams.STACKSIZE = MMWAVE_TASK_STACK_SIZE;
    taskParams.priority = mmWave_task_priority;
    Task_construction (&mmwaveTask、mmwaveTaskFxn、&taskParams、NULL);
    
    UART_INIT();
    
    /*打开毫米波配置 UART 端口*/
    UART_PARAMS_INIT (mmwaveUartParams);
    mmwaveUartParams.writeDataMode = UART_DATA_BINARY;
    mmwaveUartParams.readDataMode = UART_DATA_BINARY;
    mmwaveUartParams.readReturnMode = UART_RETURE_FULL;
    mmwaveUartParams.readEcho = UART_ECHO_OFF;
    mmwaveUartParams.波特 率= 115200;//配置波特率
    mmwaveUartParams.readTimeout = 500000 / Clock_tickPeriod;
    
    mmwaveUartHandle = UART_open (CONFIG_UART_0、mmwaveUartParams);
    if (mmwaveUartHandle = NULL){
    /* UART_open()失败*/
    while (1);
    }
    
    /*打开毫米波记录器 UART 端口*/
    UART_Params_init (&mmwaveLoggerUartParams);
    mmwaveLoggerUartParams.writeDataMode = UART_DATA_BINARY;
    mmwaveLoggerUartParams.readDataMode = UART_DATA_BINARY;
    mmwaveLoggerUartParams.readReturnMode = UART_return_full;
    mmwaveLoggerUartParams.readEcho = UART_ECHO_OFF;
    mmwaveLoggerUartParams.波特 率= 921600;//配置波特率
    mmwaveLoggerUartParams.readTimeout = 500000/ Clock_tickPeriod;
    
    mmwaveLoggerUartHandle = UART_OPEN (CONFIG_UART2_0、&mmwaveLoggerUartParams);
    
    if (mmwaveLoggerUartHandle = NULL){
    /* UART_open()失败*/
    while (1);
    }
    }
    
    void mmWave_init (void)
    {
    int command_index;
    int byte_index;
    Int 重试;
    字符输入[4];
    char dump;
    Int CommandLength;
    
    ///uart_control (mmwaveUartHandle、UARTCC32XX_CMD_RX_FIFO_FLUSH、0);
    
    //解析配置文件中的所有命令
    对于(COMMAND_INDEX = 0;COMMAND_INDEX "dump"="" &commandlist[command_index][byte_index],="" 1);="" uart_read(mmwaveuarthandle,="" &dump,="" }="" take="" care="" of="" additional="" "\n"="" 4="" bytes="" "input"="" input,="" 4);="" keep="" reading="" until="" reaches="" last="" "="">"
    while (转储!=">")
    {
    UART_READ (mmwaveUartHandle、转储、1);
    }
    
    //如果数组“输入”等于“完成”,这意味着它接收正确的命令
    if (input[0]='D'&& input[1]='o'&& input[2]='n'&& input[3]='e')
    {
    中断;
    }
    }
    #endif
    }
    }/*
    
    !
    *@简介 主任务函数
    *
    *@param A0 -
    *@param A1 -
    */
    #define empty_test
    
    void mmwaveTaskFxn (UARg a0、UARg A1)
    {
    //在初始化毫米波之前等待毫米波加电
    Task_sleep (MMWAVE_START_DELAY / Clock_tickPeriod);
    
    //等待传感器连接到收集器
    while (!sensor_connected);
    
    //初始化并启动毫米波
    MMWAVE_INIT();
    
    //UART_CONTROL (mmwaveLoggerUartHandle、UARTCC32XX_CMD_RX_FIFO_FLUSH、0);
    
    #ifdef MMWAVE_SENSOR
    while (1)
    {
    /*获取毫米波值*/
    uint8_t status = readmmwave (&mmwaveSensor);
    
    交换机(状态)
    {
    案例 MMWAVE_STATUS_SUCCESS:
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"S"、1);
    #endif
    //Util_setEvent (&Sensor_Events、sensor_mmWave_EVT);
    //SSF_PostAppSem();
    中断;
    案例 MMWAVE_STATUS_INVALID_SYNC:
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"!SYNC\n\n"7);
    #endif
    中断;
    案例 MMWAVE_STATUS_TLV_TO_long:
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"TLV>PKT\n\r\n、9);
    #endif
    中断;
    案例 MMWAVE_STATUS_PKT_TO_long:
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"PKT!=CNT\n\r\n、10);
    #endif
    中断;
    案例 MMWAVE_STATUS_INVALID_TLV:
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"!TLV\n\n"6);
    #endif
    中断;
    }
    
    }
    #endif
    }
    
    Smsgs_mmwaveSensorField_t mmwaveSensor =
    {0};
    
    uint8_t readmmwave (Smsgs_mmwaveSensorField_t* mmWaveData)
    {
    mmWaveDataUART_t mmWaveUart;
    CHAR 输入= 0x0;
    char pBuf[250];
    uint32_t i = 0;
    uint32_t count = 0;
    uint32_t len_cnt = 0;
    uint32_t len_pkt = 0;
    
    uint32_t num_tlv = 0;
    uint32_t tlv_index = 0;
    uint32_t tlv_type = 0;
    uint32_t tlv_length = 0;
    
    uint32_t obj_index = 0;
    uint32_t num_obj = 0;
    
    //同步字:02 01 04 03 06 05 08 07
    //等待同步字的开始
    while (输入!= 0x02)
    {
    UART_READ (mmwaveLoggerUartHandle、INPUT、1);
    }
    
    //验证接下来的7个字节是正确的同步模式
    len_cnt = 1;
    计数= 0;
    while (count < 7)
    {
    len_cnt += uart_read (mmwaveLoggerUartHandle、&INPUT、1);
    switch (count)
    {
    情况0:if (input = 0x01) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    情况1:if (input = 0x04) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    情况2:if (input = 0x03) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    案例3:if (input == 0x06) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    情况4:if (input = 0x05) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    情况5:if (input = 0x08) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    情况6:if (input == 0x07) count++;否则返回 MMWAVE_STATUS_INVALID_SYNC;break;
    }
    }
    
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"$"、1);
    #endif
    
    //读取剩余的帧头
    len_cnt += uart_read (mmwaveLoggerUartHandle、pBuf、44);
    len_pkt=((uint32_t)((pBuf[12])& 0x00FF)+
    (((uint32_t)((pBuf[13])& 0x00FF)<< 8)+
    (((uint32_t)(((pBuf[14])& 0x00FF)<< 16)+
    (((uint32_t)(((pBuf[15])& 0x00FF)<< 24));
    
    mmWaveData->frame_number =((uint32_t)((pBuf[16])& 0x00FF)+
    (((uint32_t)((pBuf[17])& 0x00FF)<< 8)+
    (((uint32_t)(((pBuf[18])& 0x00FF)<< 16)+
    (((uint32_t)(((pBuf[19])& 0x00FF)<< 24));
    
    num_tlv =(pBuf[40]和0x00FF)+((pBuf[41]和0x00FF)<< 8);
    
    
    //处理每个 TLV 结构
    for (tlv_index=0;tlv_index <len_pkt){
    返回 MMWAVE_STATUS_TLV_TO_long;
    }
    
    switch (tlv_type)
    {
    情况0x07:
    
    //保存脱机处理的长度。 不想放慢速度
    //通过计算对象数量来读取 UART 流
    TLV_length = tlv_length - 8;
    num_obj = tlv_length;
    obj_index = 0;
    
    while (tlv_length >0)
    {
    //Board_LED_TOGGLE (board_LED_TYPE_LED1);
    
    //保存前10个对象信息
    if (obj_index < SMSGS_sensor_mmwave_MAX_obj)
    {
    //保存对象信息(tid、posx、posy)
    len_cnt += uart_read (mmwaveLoggerUartHandle、mmWaveUart.objInfo[obj_index].info、12);
    //丢弃不需要的信息
    len_cnt += UART_read (mmwaveLoggerUartHandle、pBuf、56);
    }
    其他
    {
    //已读取最大对象数。 读取其余物体并丢弃
    len_cnt += UART_read (mmwaveLoggerUartHandle、pBuf、68);
    }
    //增加保存的对象数
    obj_index++;
    //减量长度计数器,查看是否有要处理的其他数据
    TLV_length = tlv_length - 68;
    }
    
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"&"、1);
    #endif
    
    中断;
    
    情况0x06:
    TLV_length = tlv_length - 8;
    while (tlv_length > 0){
    len_cnt += uart_read (mmwaveLoggerUartHandle、pBuf、16);
    TLV_length = tlv_length - 16;
    }
    
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"^"、1);
    #endif
    中断;
    情况0x08:
    TLV_length = tlv_length - 8;
    len_cnt += uart_read (mmwaveLoggerUartHandle、pBuf、tlv_length);
    #ifdef debug_print
    UART_WRITE (mmwaveLoggerUartHandle、"*"、1);
    #endif
    中断;
    默认值:
    返回 MMWAVE_STATUS_INVALID_TLV;
    }
    }
    
    
    //后处理
    
    //仅在接收到完整帧时继续处理
    if (len_cnt!= len_pktt)
    返回 MMWAVE_STATUS_PKT_TO_long;
    
    //对象数
    mmWaveData->num_objs = num_obj / 68;
    //对象信息
    对于(i=0;i 's="" valid="" data="" in="" the="" array="" if(i="" num_objs)
    {
    mmWaveData->objInfo[i].tid = Util_buildUint32 (mmWaveUart.objInfo[i].info[0]、
    mmWaveUart.objInfo[i]、
    mmWaveUart.objInfo[i]、info[2]、
    mmWaveUart.objInfo[i]。info[3]);
    mmWaveData->objInfo[i]。posx = Util_buildUint32 (mmWaveUart.objInfo[i]。info[4]、
    mmWaveUart.objInfo[i]、
    mmWaveUart.objInfo[i]、info[6]、
    mmWaveUart.objInfo[i]。info[7]);
    mmWaveData->objInfo[i].posy = Util_buildUint32 (mmWaveUart.objInfo[i].info[8]、
    mmWaveUart.objInfo[i]、info[9]、
    mmWaveUart.objInfo[i]、info[10]、
    mmWaveUart.objInfo[i]。info[11]);
    }
    其他
    {
    mmWaveData->objInfo[i].tid = 0;
    mmWaveData->objInfo[i]。posx = 0;
    mmWaveData->objInfo[i]。posy = 0;
    }
    }
    
    
    //UART_CONTROL (mmwaveLoggerUartHandle、UARTCC32XX_CMD_RX_FIFO_FLUSH、0);
    
    返回 MMWAVE_STATUS_SUCCESS;
    }
    
    void mmwaveStart (void)
    {
    SENSOR_Connected = 1;
    Semaphore_post (mmwaveSemHandle);
    }
    

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

    Hector、您好!

    您是否有任何方法可以查看来自 CC32xx UART 的数据是怎样的? 我对以下几点很好奇:

    1. 在写循环中、您好像每次 UART 调用发送1个字节-为什么您不立即发送整个命令? 我认为这可能是导致问题的原因
    2. 为什么在发送后立即读取1个字节? 如果毫米波器件确认单字节、则会出现问题、因为它不会读取整个命令。
    3. 最后、尝试将结束行"\r\n "替换为"\n"

    此致、

    Justin