This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,我正在用C2803X做SPI的数据传输,我想在此请问两个关于SPI的问题:
1. 在我的应用中,我需要读取SPI数据一次然后做一系列运算处理,同时我需要我的SPI数据以一定的时间间隔发送。我需要进行为了控制确定的SPI传输速率,于是写了个TINT0内部时钟中断,在中断中进行SPI的数据读取,终端部分程序如下所示。但是运行时发现无法正常工作,在观察窗口中发现SPIINT.FLAG始终没有被置1,也就是一直在while无限循环中,所以这个中断也一直未返回。而把其中SPI程序放到MAIN函数中执行则没有问题。我认为应该是SPI在中断中没有启动,但是不确定。所以在此想请问下大家是不是SPI在中断中不能使用?以及我可不可以根据我自己想设定的时间间隔来触发SPI读取,而不是一直连续读取?
2. 我在程序中模仿例程一直检测是否SPI传输完成,若传输完成即INT.FLAG置1后返回SPIRXBUF的值,通过这样来将INT.FLAG清零。但是我的应用场合实际上是对执行时间很敏感的,我不希望把如此多的时间周期浪费在等待循环中,请问SPI在传输时一定要这么用吗,可不可以在这段时间里使用CPU去做其它的运算处理而保持我设置的SPI传输速率和波特率呢?
多谢大家帮忙!