ADC1->SMPR2&=~(3*1); 3*1这是啥意思。。。。

2019-07-21 06:46发布

如题。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-07-21 09:39
就是3.  *1,说明还可以*2,*3,具体的,你自己看寄存器定义.
xuande
2楼-- · 2019-07-21 14:23
 精彩回答 2  元偷偷看……
xiaobudonglaosh
3楼-- · 2019-07-21 15:14
xuande 发表于 2016-4-6 11:05
看下寄存器定义,应当就明白了。

这个通道1采样时间清空和设置为什么不直接写成:
ADC1->SMPR2&=~(7<<3);
ADC1->SMPR2|=7<<3;

看不懂这个~(3*1).....
xiaobudonglaosh
4楼-- · 2019-07-21 20:00
ding   
xiaobudonglaosh
5楼-- · 2019-07-21 23:39
正点原子 发表于 2016-4-6 10:51
就是3.  *1,说明还可以*2,*3,具体的,你自己看寄存器定义.

还是不懂。。。为什么不直接这样写?
ADC1->SMPR2&=~(7<<3);
ADC1->SMPR2|=7<<3;
理理还是乱
6楼-- · 2019-07-22 03:03
xiaobudonglaosh 发表于 2016-4-6 22:15
还是不懂。。。为什么不直接这样写?
ADC1->SMPR2&=~(7

我与楼主有同样的疑问。
ADC1->SMPR2&=~(3*1);                    //通道1采样时间清空
这一句我想它应该是有问题的,因为通道1的设置位在位5:3,而这一句显然配置的是位1:0;
至于ADC1->SMPR2|=7<<(3*1);
我的理解是,这个“3”代表一个通道所占的位数,后面“1”则代表第1通道,通过修改“1”可以更方便地直接配置第N通道

一周热门 更多>