TI中文支持网
TI专业的中文技术问题搜集分享网站

EK-TM4C123GXL: 询问EK-TM4C123GXL程式内SSIDataGet问题

Part Number:EK-TM4C123GXL

TI各位好:
昨天使用SSIDataGet接收资料时,遇到一个问题。我无法接收第9笔资料,使用示波器观看波形,有显示第九笔波形出来。
Data Sheet内说Rx_FIFO大小是8*16,可能是这个原因造成我无法接收到第九笔资料,想询问解决方式。
程式如下:
for(SSI_j = 0; SSI_j<Data_RX; SSI_j++)
{SSIDataGet(SSI0_BASE, &Data[SSI_j]);
}
 
Susan Yang:

BEN YU 说:我无法接收第9笔资料,使用示波器观看波形,有显示第九笔波形出来。

您是否有进行在线debug?通过设置断点等方式来查看代码的运行情况

另外是否有检查FIFO内的数据是否被拿走(即FIFO是否是空的)?

,

BEN YU:

观看程式运形状况都会卡在第九笔,后来更改为SSIDataGetNonBlocking程式不会卡,但是第九笔资料还是读不到。
至于是否有检查FIFO内的数据是否被拿走(即FIFO是否是空的)?
这部份还不太熟悉,要如何检查和清空FIFO,是否有范例可看?
我有尝试使用中断,但是结果还是无法读取到第九笔资料
SSIIntEnable(SSI0_BASE,SSI_RXFF|SSI_RXTO);
Void SSI0_Interrupt(void)
{uint32_t ui32Status;ui32Status = SSIIntStatus(SSI0_BASE, true);for(SSI0_j= 0; SSI0_j< NUM_SSI_DATA; SSI0_j++)
{SSIDataGet(SSI0_BASE, &pui32DataRx[SSI0_j]);pui32DataRx[SSI0_j] &= 0x00FF;
}
SSIIntClear(SSI0_BASE, ui32Status);
}

,

Susan Yang:

建议您参考下面链接的写法:

https://blog.csdn.net/Attack_on_cc/article/details/87926159 

void vSPI_Transmit(uint8_t *ucp_Data, uint16_t us_Size);和void vSPI_Receive(uint8_t *ucp_Data, uint16_t us_Size);函数是对上面的读写函数的一个封装实现了连续读以及连续写。

,

BEN YU:

感谢回覆,思考一下知道问题点了。我程式流程,就是我每次都是发送完全部资料,才去接收回传资料,我忽略同步接收。

,

Susan Yang:

谢谢您的反馈

赞(0)
未经允许不得转载:TI中文支持网 » EK-TM4C123GXL: 询问EK-TM4C123GXL程式内SSIDataGet问题
分享到: 更多 (0)