完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
得到AD转换结果的程序如下.
u16 Get_Adc(u8 ch) {//设置转换序列 ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch 疑问语句1ADC1->SQR3|=ch; 疑问语句2ADC1->CR2|=1<<22; //启动规则转换通道 while(!(ADC1->SR&1<<1));//等待转换结束 return ADC1->DR;//返回adc值} 内部温度传感器接的是第16通道,文中令ch=16,然后进行相关计算。 我认为疑问语句1就是给各个通道进行编号,但这里使用了SQR3,并没有使用SQR1,而第16通道不是在SQR1吗? 请问SQ16是不是表示第16通道?还是说他可以表示任意通道(通道1,2,...),只是他排第16,是第16个转换通道? 然后疑问语句2为SQR3赋值ch, 即令 ADC1->SQR3|=16; 请问这一句又作何解释? SQR3|=16的话,应该是SQ1通道的编号为16,对吗? 若SQR3|=16<<5;则是SQ2的通道编号是16,是这样理解吗? |
|
相关推荐
2个回答
|
|
|
规则通道就是个容器,可以设置为任何adc通道。
|
|
|
|
|
|
我没明白你讲的是啥。
但是大概知道你的迷惑是什么。 在SQR1中的那个16 不是代表第16通道,而是代表的第16个转换。还记得那个设置转换通道数的那几个位吗?如果设置了16个转换,那么就会从第一个转换开始 一直到 第十六个转换。 但是你的转换顺序是什么顺序呢?就是根据SQRx来决定的。SQR1中的SQ1 代表的是第一个转换,其有5个位可以代表转换通道0-17。 即 如果这里你写16 进去,就是代表第一个转换是转换通道16. 如果写0进去,就代表第一个转换是通道0. 原子大哥的实验是仅一个转换,所以转换通道数为1个转换,即SQR1 = 0。而第一个转换转换哪儿的通道呢?是测内部温度呢 还是采集引脚电压值,就是ADC1->SQR3&=0XFFFFFFE0; ADC1->SQR3|=ch; 来决定了 所以这里的ch代表通道 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4140 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3228 浏览 1 评论
2753 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2181 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14984 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3092浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1898浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2070浏览 3评论
1981浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2171浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 05:48 , Processed in 0.649216 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1685