TI论坛
直播中

李昕一

7年用户 245经验值
私信 关注
[问答]

关于SCI的问题怎么解决

发1收1,正确,设置不同的fifo,也正确。都能做到正确收发。
问题:
如果 关闭 SCI接收中断和发送中断,不设fifo,只设置定时器,每进入一次定时器中断,发送256个数据并接收,这样为何不可?
__interrupt void cpu_timer0_isr(void)
[


for(i=0;i<256;i++)
[ SciaRegs.SCITXBUF.all= sdataA;

rdataA= (SciaRegs.SCIRXBUF.all);
]

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
]
这样不行吗??  发送的为0-255, 为何接收到的都不对?

回帖(2)

魏双艳

2020-5-19 10:45:02
发送是需要时间的,你在循环中疯狂的往缓冲区写数据,估计你256个循环完成了,实际一个数据都没发完整。应该每执行SciaRegs.SCITXBUF.all= sdataA 一句之后,适当延时,或者在另一个循环总查发送完成标记,等待发送完成后再继续发送。接收也一样道理,都是需要等待的。
举报

李昕一

2020-5-19 10:51:26
引用: 60user128 发表于 2020-5-19 10:45
发送是需要时间的,你在循环中疯狂的往缓冲区写数据,估计你256个循环完成了,实际一个数据都没发完整。应该每执行SciaRegs.SCITXBUF.all= sdataA 一句之后,适当延时,或者在另一个循环总查发送完成标记,等待发送完成后再继续发送。接收也一样道理,都是需要等待的。 ...

谢谢  ,做了延时 就对了
举报

更多回帖

×
20
完善资料,
赚取积分