找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[BSP] PDMA 启动通道0与1发生冲突?

[复制链接]
楼主
chrishu 发表于 2024-1-30 11:33:45 | 显示全部楼层
本帖最后由 chrishu 于 2024-1-30 11:39 编辑

SPI_PDMA_LoopTest例程使用的双通道你在PDMA_INTSTS_ABTIF_Msk中断里关闭了外设触发PDMA,那肯定不会再传输了
回复 支持 反对

使用道具 举报

沙发
chrishu 发表于 2024-1-30 16:43:57 | 显示全部楼层
游客 60.248.240.x 发表于 2024-1-30 11:56
ABORT中断已经提示传送"违"完成( SPI_PDMA_Done = 0;  ADC_PDMA_Done=0;)
所以主程式可判断重传,没问题!!! ...

ABTIF中断:发生AHB总线错误。没有进ABORT中断说明没有发生AHB总线错误。
TDIF中断:通道传完中断。
你在AHB错误和传完中断里都设置传完标志=0。在主程序里怎么区分是传完还是发生了错误?
你在主函数里等不到传完标志可能的原因:
一:没有开始传输
二:已传输数据的个数< 设定的个数。
可以debug看一下PDMA的寄存器里CNT的值,就知道是没开始传输还是传输的数据不够。
也可以开启超时中断,如果已经开始传输超时了数据还未传完,就会进超时中断。如果没开始传输或者传完不会进超时中断。
回复 支持 反对

使用道具 举报

板凳
chrishu 发表于 2024-1-31 08:54:45 | 显示全部楼层
keyway 发表于 2024-1-30 22:53
~发送PDMA时,CNT已经归零(速度很快)~

规格书...

通道传完后,传输模式会自动回到IDEL状态。也就是说进传完中断时,传输模式已经是IDEL了。
AHB总线错误,应该是PDMA传输出错,那么传输的数据也可能是错误的,这时可以停止传输丢掉数据。这个错误发生的概率太低,所以基本都没添加相关处理代码。
回复 支持 反对

使用道具 举报

地板
chrishu 发表于 2024-2-21 11:35:01 | 显示全部楼层
keyway 发表于 2024-2-21 00:02
今天测试,ADC PDMA仍然传送5~6次后停止中断,导致ADC传送永远无法完成?
M031FC1AE 晶片是否能同时开起2个 ...

你要debug看一下,是PDMA还是ADC停了?在哪里停的?
如果如你第一次说的: 把 ABTIF 中断判断程式删除后,可正常运行
那应该是传输过程出错,中断里停止的ADC 和PDMA触发。
可以将能在开发板上复现问题的代码发给我们试一下。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU