用上dma了,我那个是主接收,应该是使用不了iic中断的,我现在的具体操作我是这么做的,我的那个主接收读取数据花费700us之多是放在一个触发中断里面的,是有3次单个字节的读取加上一次16和字节的读取,耗时最大的是在后面的16字节上,而前面的单个字节的读完之后后面还要cpu介入去判断条件然后去处理的,所以肯定要cpu,所以我把dma用在了后面的16个字节读取上了,现在只要进入到了后面的dma读取时候,我用while等待去等,在这个等待里面,我那个10khz的中断可以打断它,这样就不算cpu浪费了,这个10khz的中断,优先级就应该要最高才行,除了这个10k中断其他的cpu也不需要做啥事情,之间遇到的问题就是那个读三个单独字节的那个iic过程,那里如果10k的中断的持续时间过长会导致硬件iic挂掉,具体测试的是30us以上的中断打断就会工作一段时间之后挂掉,,20几us就没事。所以保持这个打断硬件iic的中断时间在30us以下,比较保险
|