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

SCI通信

SCI通信的时候,我通常用中断的方式接受数据,但是这样会打断主程序的运行,我想问下有没有不用中断就能接受数据,且不会打扰主程序的运行,请问有什么方法?

谢谢!

Forrest:

这个没有办法,芯片指令是顺序运行,不像FPGA那样是并行。

或者您算好时间,在主程序中进行查询接收数据。又或者让SCI中断优先级最低,可以被其他中断嵌套,以便不影响主程序的运行。

SCI通信的时候,我通常用中断的方式接受数据,但是这样会打断主程序的运行,我想问下有没有不用中断就能接受数据,且不会打扰主程序的运行,请问有什么方法?

谢谢!

Troublemaker:

回复 Forrest:

请教Forrest,能否不需要借助中断,一次性往FIFO中传输16个字节的数,CPU从FIFO中提出16个字节的数呢?谢谢!

SCI通信的时候,我通常用中断的方式接受数据,但是这样会打断主程序的运行,我想问下有没有不用中断就能接受数据,且不会打扰主程序的运行,请问有什么方法?

谢谢!

Forrest:

回复 Troublemaker:

可以不借助中断,您可以参考一下SCI例程,用查询方式4个数据一次接收。

至于“一次性往FIFO中传输16个字节的数,CPU从FIFO中提出16个字节的数”

老的C2000芯片SCI有16级FIFO,我记得您用的是28027,他只有4级深。

SCI通信的时候,我通常用中断的方式接受数据,但是这样会打断主程序的运行,我想问下有没有不用中断就能接受数据,且不会打扰主程序的运行,请问有什么方法?

谢谢!

Troublemaker:

回复 Forrest:

我现在用的是28335,换掉了。可以利用这个16级的FIFO实现一次性传输16个字节的数据吗?谢谢!

请推荐相关的历程!

SCI通信的时候,我通常用中断的方式接受数据,但是这样会打断主程序的运行,我想问下有没有不用中断就能接受数据,且不会打扰主程序的运行,请问有什么方法?

谢谢!

Troublemaker:

回复 Troublemaker:

接受数据的话,采用FIFO的话,从SCI 接收管脚经过移位寄存器,应该是直接移到FIFO缓存里吧。如果知道FIFO16个缓存的地址,就可以直接把16个数据给读到CPU里了。

赞(0)
未经允许不得转载:TI中文支持网 » SCI通信
分享到: 更多 (0)