打印
[国产单片机]

雅特力AT32——ADC使用注意事项(ADON触发功能)

[复制链接]
791|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hoop|  楼主 | 2020-12-17 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hoop 于 2020-12-17 19:35 编辑

之前有研究AT403A和ST103的ADON触发功能,发现这个功能多少有点讨厌,如下举例说明
1.ADON触发功能本质
  确实如RM所属,在ADON=1的状态下,如果软件再写一次ADON=1,就会带来一次规则触发
2.我之前的应用(反面教材)
  我的ADC使用规则及注入转换,在某些时候需要切换注入通道,其中切换注入通道的关键代码如下
    ADC_ExternalTrigInjectedConvCtrl(ADCx,DISABLE);///<为避免切换通道过程中发生注入触发事件,直接不允许注入外部触发
    ADC_InjectedChannelConfig(ADCx,/*新的ADC_Channel*/, 1, /*新的SampleTime*/);///<切换第一个注入转换通道
    ADC_InjectedChannelConfig(ADCx,/*新的ADC_Channel*/, 2, /*新的SampleTime*/);///<切换第二个注入转换通道
    ADC_ExternalTrigInjectedConvCtrl(ADCx,ENABLE);///<注入通道切换完毕,重新允许注入外部触发
  重点如上第一句和最后一句代码,原型分别如下
    ADC1->CTRL2 &= ((uint32_t)0xFFFF7FFF;///<前述第一句
    ADCx->CTRL2 |=(uint32_t)0x00008000;///<前述最后一句
这两句代码有一个共同特点,均在操作Bit位JEXTTRIG的同时还有将ADON的配置读出来再写回去,而由于之前我已经将ADON写1了,因此这两句代码的执行就实现了在ADON=1的状态下再写了一次ADON=1,所以就会带来一次不期望的规则组的转换
3.楼主提醒
  小伙伴们,如果你们的ADC应用需要切换注入通道的话,要记得做好安全措施哦。

使用特权

评论回复

相关帖子

沙发
fcccc| | 2020-12-20 21:47 | 只看该作者
感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

322

帖子

0

粉丝