大家好、
我正在使用 TM4C1294XL Launchpad 进行项目开发。 我想通过 UART 将 ADC 数据发送到 LabVIEW 软件。 下面是我的代码设置
- MCU 时钟@120MHz
- 借助计时器将 ADC 采样率设置为256Hz
- 串行传输协议为115200bps、8-N-1。
- 使用 UART0进行串行通信。
下面是主函数的 while (1)循环
while (1)
{
ADCIntClear (ADC0_BASE、1);
while (!ADCIntStatus (ADC0_BASE、1、false))
{
}
ADCSequenceDataGet (ADC0_BASE、1、ui32ADC0Value);
for (j=0;j<=255;j++)
{
outputsamples1[j]= ui32ADC0Value[0];
outputsamples2[j]= ui32ADC0Value[1];
outputsamples3[j]= ui32ADC0Value[2];
outputsamples4[j]= ui32ADC0Value[3];
}
CH1DATA= outputsamples1[a];
CH2DATA= outputsamples2[A];
ch3DATA= outputsamples3[a];
CH4DATA= outputsamples4[a];
/****将12位 ADC 数据转换为8位****
AL = CH1DATA & 0xF00;
Al = al>>8;
Ah = CH1DATA & 0xFF;
BL = CH2DATA & 0xF00;
BL = BL>>8;
Bh = CH2DATA & 0xFF;
CL = CH3DATA & 0xF00;
CL = cl>>8;
CH = CH3DATA & 0xFF;
DL = CH4DATA & 0xF00;
DL = dl>>>8;
DH = CH4DATA & 0xFF;
CH1D = al |(ah<8);
CH2D = BL |(BH<8);
CH3D = cl |(ch<<8);
CH4D = dl |(DH<<8);
UARTPrintf ("%d"、CH1D);
UARTPrintf ("%d"、CH2D);
UARTPrintf ("%d"、CH3D);
UARTPrintf ("%d"、CH4D);
A=a+1;
if (a==256)
{
A=0;
}
}
我通过发送正弦波测试代码、但在 LabVIEW 部分、波形不是 作为正弦波出现、而是一些随机噪声信号。
在将数据发送到 LabVIEW 之前、我是否需要将数据转换为字符串?如果是、那么该怎么做? 我们无法直接发送整数吗?
我还尝试了 UARTCharPut (UART0_BASE、CH1D)命令、但它没有向 PC 发送任何内容。
很好的帮助!!!