你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
creep 发表于 2015-6-10 17:33 如果接收数据很多的话,频繁的中断的确开销很大。 既然用DMA了,为何不用串口空闲中断+DMA呢,这就不用频繁 ...
lusonghua 发表于 2015-6-11 08:53 串口空闲中断,什么时候串口有空闲呢。应该保证必须保证串口空闲中断发出之前buffer没满。 ...
lusonghua 发表于 2015-6-11 08:51 没有查询串口,是查询DMA的状态,DMA的设置自行完成了RingBuffer的功能。 串口接收的缓冲长度决定了读取R ...
creep 发表于 2015-6-10 23:25 这应该是串口接收数据比较好的方法之一的,中断的方法和这个没法比。
串口空闲中断,什么时候串口有空闲呢。应该保证必须保证串口空闲中断发出之前buffer没满。
当然,整个程序必须没有阻塞,或者阻塞的时间保证串口通讯肯定不会“溢出”Buffer。
中断也没什么不好的,但一般情况下会有更需要中断的地方。
串口接收这种事情留给空闲时间即可。
如果设置了串口空闲中断,那么2帧发送数据之间的间隔就会产出一次串口空闲中断。
至于buff的大小就要看你发送的数据一帧有多大了,合理设置即可。
那“查询DMA的状态”是否也会一直在占用CPU啊?
我之前都是开一段缓存,中断接收了就往里存,然后别的程序再从缓存里取了解析