ARM STM32F中ADC中 规则通道 注入通道 序列寄存器(SQR JSQR)的使用方法

      STM32F中的ADC是十分强大的,使用方法多,寄存器多,操作也复杂。下面就来看看ADC中规则通道,注入通道及序列寄存器(SQR JSQR)到底该如何使用。

      第一,看看规则通道与注入通道的区别

     可以看到,我们常规的使用是规则通道,当有有一个触发来个,就执行注入通道,注入通道好比“紧急通道”。

     一个不太恰当的比喻是规则通道组的转换好比是程序的正常执行而注入通道组的转换则好比是程序正常执行之外的中断服务程序。

     这是根本区别,由此带来的不同可以看芯片手册。

     第二,看看四种模式

     (注:最后一种,“连线”应为“连续”)

    以上四种模式如何选择呢? 通过CR1中的SCAN位来决定是单通道还是多通道,通过CR2中的CONT来决定是单次转换还是连续转换。

   第三,SQR及JSQR的使用

   不论是以上四种模式中的哪一种,都要对序列序列寄存器进行操作。

   单通道单次转换模式下,使用规则通道,如何来操作呢?首先,假如你的通道为CH1那么,对ADC_SQR3寄存器中的SQ1[4:0]赋值0x01,若通道为CH16,则赋值0x10。注意不论是哪一个通道被使用,均只对SQ1[4:0]进行操作,因为只有一个通道,第一次转换的就是它了!

   单通道单次转换模式下,使用注入通道,如何来操作呢?必须明白,使用注入通道的前提是规则通道还在使用的。

   比如用注入通道来转换CH16温度传感器电压。首先,可以设置CR1的JAUTO位为1,即在规则通道转换完成后自动转换成注入通道。然后,设置JAQR寄存器的JSQ4[4:0]为0x10,表明使用的是CH16。为什么不是JSQ1而是JSQ4呢?第一次转换的通道应该在JSQ1里面啊?因为JSQR与SQR的使用准则不同,JSQR是从4-JL开始的。所以,这里JL为0x00(一个),所以JSQR是从4开始的,即JSQ4是第一个通道号所在地。

   多通道就依照上面的方法进行操作即可,比如使用规则通道,第一个转换通道号的在SQ1中,第二个在SQ2中,。。。依次类推即可。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值