工具/软件:Code Composer Studio
大家好、TI 社区、
我正在尝试使用 GUI 选项获得更高的帧速率-启用距离-多普勒。 在我要构建的应用中、我只对非常靠近雷达的物体感兴趣。 因此、我想让传感器仅发送距离-多普勒剖面的前几个数字。
我设法让它在30 FPS 下工作(有一些问题)、我所做的就是:
只有两个地方发生了变化。 在 MSS_main.c 中、
MmwDemo_transmitProcessedOutput (...) { (笑声) IF (pGuiMonSel->rangeDopplerHeatMap) { tl[tlvIdx].type = MMWDEMO_OUTPUT MSG_RANGE_PLOPLE_HEAT_MAP; //将 tlv 长度除以 rd_denom (第一位已更改) tl[tlvIdx].length =(subFrameCfg->numRangeBins * subFrameCfg->numDopplerBins * sizeof (uint16_t)))/ 2;//将 rd profile length 设置为给定长度的一半(第一位已更改) packetLen += sizeof (MmwDemo_output_message_tl)+ tl[tlvIdx].length; tlvIdx++; } (笑声) if (pGuiMonSel->rangeDopplerHeatMap = 1) { //仅发送一半消息 UART_writePolling (uartHandle、 (uint8_t*)&tl[tlvIdx]、//我们已更改了上面的 tlv 长度 sizeof (MmwDemo_output_message_tl)); UART_writePolling (uartHandle、 (uint8_t*) detMatrix、 tl[tlvIdx].length /2);//仅发送一半数据(第二位已更改) tlvIdx++; } }
我更改的行具有显示更改功能的注释。 在上述代码中、它仅发送 detobj 缓冲区中的一半、因此我们将长度除以2。
通过将分母增加到16、它可以在 fps =下工作 30。
但是、我通过这种方法得到的距离剖面似乎被这种方法破坏了。
该图是我在不更改传感器代码的情况下获得的距离-多普勒热图、我仅裁剪了顶部部分、即捕获更接近雷达的物体的部分。
上图是所需的输出。 现在、通过上述更改、我得到的结果如下:
这显然是不正确的。
很明显、我对信息进行分块的方式并不正确
UART_writePolling (uartHandle、 (uint8_t*) detMatrix、 tl[tlvIdx].length /2);
我怀疑这可能是由于发出字节的顺序所致。 也许数据在存储器中采用不同的字节序、而是通过 UART 传输。 只需占用前半个块的存储器就有助于减少数据传输时间。 但是它发送的数据不正确...
有人能帮我解决这个问题吗?
提前非常感谢!
此致、
齐亨

