Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
这两个接口中间是不是不能被打断? 运行的时候,无论是在它们中间打断点,还是用线程去打断它,mcu都会一直循环进spi中断,有点像某个导致中断的标志位没有被清。 这个spi这个任务优先级不高,运行一段时间后恰好被高级任务从这两接口之间抢段,mcu就死机了,一直进spi中断。 试过加调度器临界保护,结果这个现象还是会出现,不知道是不是有其他原因也会造成这个问题
可能是因为某次打断时间较长,SPI 没来得及读取接收 FIFO 内的数据,导致FIFO内数据上溢,产生 overflow 错误。 如果task 较多,可以用 DMA 的方式去搬运数据,这样就不会受到影响
Diga 这个overflow可以清除吗?还是底驱时间不够
可以清除,但此次 SPI 通信已经失败了,已经有接收数据被丢弃了,而且下次再被长时间打断,还是会产生 overflow
Diga 丢数据没关系,清除的接口是哪个? 是这个吗
更正一下,SDK 中断内部是有对错误进行处理的,接收上溢或者发送下溢都会终止当前 SPI 传输。 你可以看一下一直进中断,进的是什么中断,当前状态寄存器是什么
Diga 反复进这里
Diga 然后进这里,这里所有的if全部没进,直接出来的,也就是说进一次中断什么都没处理
看一下状态寄存器,SPI->STS
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...