找到最终原因了,是我中断函数名写错导致EOC中断产生后没法进入中断函数。 |
问题补充更新: 我将ADC的中断触发关闭,设置成单次转换模式,直接在转换结束后读取DR寄存器的值,没有通过触发来读取,发现可以正常读取到ADC的值:
由此可见在串口调试助手中无法输出内容是由于中断的问题 以下是中断EOCIE的说明: EOCIE:允许产生EOC中断 (Interrupt enable for EOC) 该位由软件设置和清除,用于禁止或允许转换结束后产生中断。 0:禁止EOC中断; 1:允许EOC中断。当硬件设置EOC位时产生中断。 那么,理论上ADC转化完成后将产生EOC中断,进入中断函数,在中断函数中读取到DR的值,而实际效果是ADC在中断这里卡死,具体原因还在寻找。 |
yzwzfyz 发表于 2023-3-22 16:27 找到原因了,问题出在中断上 |
再读CPU手册,特别关注AD部分。 |
顶一下 |