主题中讨论的其他器件:ADS1298
大家好。
我通过 SPI 将 TM4C129x 与 ADS1298通信、一切都正常、直到我必须从 ADS 读取转换。
当 DRDY 被触发时、我将开始读取、我意识到每次在讲座中、它都会产生一个值为零的额外字节。
我有两个函数、其中一个函数发送 RDATA (读取数据命令)、另一个函数读取 ADS 发送的值、如果执行此操作、则会显示额外的字节。
在执行一些测试时、我意识到、如果我调试代码并在读取数据的函数调用中停止代码(在命令发送后)、数据不含额外的字节、 我猜它与时序相关、因此我添加了延迟、现在如果我正常运行代码、我将读取而不使用额外的字节、但为什么呢? 我做了什么错了、或者我不做什么?
我在示波器上看到了来自 ADS 的 SPI 数据、它没有额外的字节、因此 Tiva 就是问题之一。
这是读取过程的顺序:
if (bdataReady) { bdataReady = false; SendCommand (RDATA、0、0、NULL、NULL); vReadADSData (ui32ADCReadings); SysCtlDelay (200); SendCommand (开始、0、0、NULL、NULL); }
这是我从 ADS 读取的函数:
void vReadADSData (uint32_t * ui32ReadData) { /*清理 Rx FIFO_uint32_t ui32FlushFIFO = 0; while (SSIDataGetNonBlocking (SSI2_base、&ui32FlushFIFO)); /*将用作虚拟数据的值设置为零*/ ui32FlushFIFO = 0; for (uint8_t ui8ReadingIndex = 0;ui8ReadingIndex < Bytes_per_RDATA + 1; ui8ReadingIndex++、ui32ReadData++) { SSIDataPut (SSI2_base、ui32FlushFIFO); SSIDataGet (SSI2_base、ui32ReadData); }
我不知道为什么会发生这种情况、如果您需要更多信息、请告诉我。
顺便说一下... 我无法选择合适的论坛、我不知道为什么、它只是出现在无线论坛上。 请帮助我将此帖子重定向至正确的论坛。
谢谢你。
此致、Juan。
 
				 
		 
					 
				


