1、SCI通信格式中数据位数1~8与FIFO深度1~16
SCI通信格式中的数据位数是指采用SCI传输数据时一帧数据的位数,一帧传输1~8位,则两帧传输2~16位;FIFO深度是指有多少数据存入到FIFO中时会产生中断请求事件,FIFO的深度设定时当然要大于所定义的数据格式的位数,数据位数一定的情况下,深度越大所发生的中断请求频率越低。
2、实际测试
当波特率设定为19200时,以串口调试软件“xfcom21.exe”测试数据位分别为1~8,深度分别为1~16。
串口调试软件截图
结果为:
数据位<7位时,无论FIFO深度为多少,传输均错误,数据位为7或8位时,FIFO深度在大于数据位的情况下,传输均正确;且当数据位=深度时,传输的数据在自行设定的buffer数组中各位始终保持不变,稳定传输,当数据位小于8位时,buffer数组中各位轮流变换传输,且变换与FIFO深度与数据位数有关系。
说明对于FIFO堆栈深度的设定只影响中断产生事件的频率,SCI串口传输时设定数据位数为7或8位传输较为稳定。
3、测试所用程序
void InitSci(void)
{
SciaRegs.SCICCR.bit.STOPBITS=0; //1位停止位
SciaRegs.SCICCR.bit.PARITYENA=0; //禁止极性功能
SciaRegs.SCICCR.bit.LOOPBKENA=0; //禁止回送测试模式功能
<