fan_honglian 发表于 2009-7-3 13:05:42

USART传送数据时候,其他中断会影响数据吗

当USART\SPI正在传送数据时候,如果发生了其他中断事件,将被打断,这时候,会不会造成数据传输出错?

snoopyzz 发表于 2009-7-3 13:10:06

数据本身不会因为中断出错
但你缓冲处理不好,可能会丢失或其它毛病...

zxq6 发表于 2009-7-3 13:26:54

楼主的担心其实多余了,当你将数据写到UDR寄存器的时候,发送过程完全由硬件控制了,这个时候不管UDR里面的内容是否向外面发送完,都不会影响到发送的连续性,也就不会造成出错了。

liao_liao 发表于 2009-7-20 17:14:54

因为发送可以等,接收不能等
如果SPI只发送,USART本身有3级缓冲接收。SPI速度比USART快多了。所以数据处理好,就不好溢出。其他是硬件完成的。,
如果SPI要接收的话,最好SPI也做个缓冲,因为SPI速度快,上个没有取出,下个又来的话,因为USART占用中断处理时间太长,就会造成SPI数据覆盖。

machao 发表于 2009-7-21 20:49:40

这个问题非常好,其实还是不容易回答全面的。

简单的说,只有你的SPI是主机,且USART在数据放送情况时,其它中断事件基本不会影响,只是数据传输慢些。

但如果你的SPI是从机,或USART接收数据,并且数据是批量传送的,那么就会有问题的。

在现在的系统中,串行通信使用的非常多,数据也多,速度也快,给整个系统软件设计提出了挑战。在32位系统中,硬件上已经使用了DMA技术和通道,就是为了能比较好的处理这样的问题。
页: [1]
查看完整版本: USART传送数据时候,其他中断会影响数据吗