ADC注入通道的数据变换为有符号数有什么用处

2019-07-20 23:40发布

11.5  数据对齐
ADC_CR2寄存器中的ALIGN位选择转换后数据储存的对齐方式。数据可以左对齐或右对齐,如
图29和图30所示。
注入组通道转换的数据值已经减去了在ADC_JOFRx寄存器中定义的偏移量,因此结果可以是一
个负值。SEXT位是扩展的符号值。

以上是摘自STM32中文参考手册的一段话,请注意红字部分。实在不明白为什么要把注入通道的数据作这样一种变换?这样有什么好处?有没有知道的朋友,告诉一下好吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
cdshkf
1楼-- · 2019-07-21 03:48
 给出我的理解,先给你看一张图:

cdshkf
2楼-- · 2019-07-21 08:31
1、上图是之前帮一个网友调的注入组转换的程序,程序debug过程中截了张图,黑 {MOD}框里显示JOFRx都为0,JDR1的转换结果为0x7C4,这张图说明什么问题,也就是说在默认情况下,JOFRx的值都是0,如果不配置注入通道数据偏移的话,ADC注入通道的数据采集结果也就没有偏移。
2、为什么要把注入通道的数据作这样一种变换?我觉得这是芯片设计厂商提供给用户的一种对于注入组数据处理的途径。举个很简单的例子,很多情况下我们通过ADC采集到的电路中的信号值不一定是我们需要的结果,有时候需要做一些处理,比如采集音频信号,信号里可能带有直流偏置量,我们在采集到这个结果的时候需要手动地把这个直流偏置量减掉,然后才是我们要的结果,而这个注入通道数据偏移寄存器正好也提供了这种功能,只要把这个直流偏置量设置进注入通道数据寄存器JDFRx,这样我们最终采集到的结果(JDRx)就是减掉直流偏置量的信号值了,不知道我这么说你能不能明白。
3、总而言之,注入组通道数据偏移的这种转换就是芯片厂商提供给用户的一种处理转换结果的途径,你如果不需要可以不用,用了才能感受到其中的方便之处。
正点原子
3楼-- · 2019-07-21 14:21
 精彩回答 2  元偷偷看……
东坡一剑
4楼-- · 2019-07-21 19:49
回复【2楼】正点原子:
---------------------------------
谢顶!
东坡一剑
5楼-- · 2019-07-21 23:59
 精彩回答 2  元偷偷看……
cjx1842
6楼-- · 2019-07-22 01:11
cdshkf 发表于 2014-5-24 10:29
1、上图是之前帮一个网友调的注入组转换的程序,程序debug过程中截了张图,黑 {MOD}框里显示JOFRx都为0,JDR1的 ...

这个问题我想了一天,终于想明白后,不到5分钟,看到了你的帖子,吐血ing,相见恨晚

一周热门 更多>