尊敬的先生或女士:
我按照毫米波 SDK 培训"演示捕获"进行操作、可以获取 ADC 原始数据并离线进行一些信号处理。 但是、我需要实时执行它。 我能否使用 UART 或其他协议通过 COM 端口传输 ADC 原始数据、以便在超级终端 Tetra 中显示实时数据。
例如、我在 gFrameAddress[0]中有 ADC 数据。 我如何通过 COM 端口传输和更新数据?
谢谢你
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.
尊敬的先生或女士:
我按照毫米波 SDK 培训"演示捕获"进行操作、可以获取 ADC 原始数据并离线进行一些信号处理。 但是、我需要实时执行它。 我能否使用 UART 或其他协议通过 COM 端口传输 ADC 原始数据、以便在超级终端 Tetra 中显示实时数据。
例如、我在 gFrameAddress[0]中有 ADC 数据。 我如何通过 COM 端口传输和更新数据?
谢谢你
大家好、Vaibhav Mahimkar、
我想从 DEMO_CAPTURE 开始。 因为我使其正常工作、我可以从 DEMO_CAPTURE 中获取原始数据。 我在 CortexR4f 中处理 MSS_main.c 文件。 您是否会向我推荐 demo_capture 的 MSS_main.c 中的函数、以获取 ADC 数据并将其放入 L3存储器。 如果我使用256个 ADC 样本将线性调频脉冲编程为1帧、我能否使用 demo_capture 的 MSS_main.c 中的函数通过 UART 发送256个 ADC 样本。
谢谢你
您好!
要通过 UART 发送原始 ADC 数据、我建议使用 DSS UART 、这将导致最小的演示代码变化。
以下是代码片段和注释、可帮助您在结束时完成此任务
|
dss_main.c:
UART_writePolling (gMmwDssMCB.loggingUartHandle、 SOC_XWR16XX_DSS_ADCBUF_BASE_ADDRESS、num_of _Bytes);
/*处理 dataPath 事件*/ /**在此处更改代码以将 AdcBuff 数据复制到 UART,而不是复制到 L3内存***/ |
此致、
Jitendra Gupta
尊敬的 Jitendra Gupta:
根据我的理解、我会这样做。 您能不能为我检查这是对的还是错的。 我不理解以下评论:
这是我的修改函数
静态 Int32_t CaptureDemo_dataPathProcessEvents (UINT 事件)
{
captate_dmaConfig * ptrDmaCfg =空;
int32_t RetVal = 0;
capture_DataPathObj * ptrDataPathObj;
/*获取数据路径对象句柄*/
ptrDataPathObj =&gCaptureMCB.dataPathObj;
/*处理 dataPath 事件*/
switch (事件)
{
案例捕捉_CHIRP_EVT:
/*递增事件统计数据*/
gCaptureMCB.stats.chirpEvt++;
UART_writePolling (gMmwDssMCB.loggingUartHandle、 SOC_XWR16XX_DSS_ADCBUF_BASE_ADDRESS、num_of _Bytes);
//注释掉所有这些内容
/*
/*从 CLI 获取已保存的设备配置*/
ptrDmaCfg =&ptrDataPathObj->dmaConfig;
DebugP_assert (ptrDataPathObj->edmaState = Capture_EDMA_State_ready);
if ((ptrDmaCfg->currDstAddr + ptrDmaCfg->dmablockSize)<ptrDmaCfg->endDstAddr)
{
RetVal = EDMA_setDestinationAddress (ptrDataPathObj->dmaHandle、(uint16_t) ptrDmaCfg->channelId、
SoC_translateAddress (ptrDmaCfg->currDstAddr、SOC_TranslateAddr_Dir_TO_EDMA、NULL);
if (RetVal < 0)
{
System_printf ("错误:设置 EDMA 目标地址失败、出现错误[%d]\n"、RetVal);
}
/*触发 DMA 传输*/
EDMA_startDmaTransfer (ptrDataPathObj->dmaHandle、ptrDmaCfg->channelId);
ptrDataPathObj->edmaState = Capture_EDMA_State_Busy;
ptrDmaCfg->currDstAddr += ptrDmaCfg->dmablockSize;
}
其他
{
/*到达 RAM 缓冲器的末尾*/
}
中断;
*
中断;
案例 CAPTURE_FRAMESTART_EVT:
/*递增事件统计数据*/
gCaptureMCB.stats.frameStartEvt++;
//注释掉
/*
/*将每个帧的目标地址设置为缓冲区的开头*/
ptrDmaCfg->currDstAddr = demo_L3RAM_DATA_MEM_address;
中断;
*
中断;
默认值:
中断;
}
返回0;
}