OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3359|回复: 2

库函数操作无效,很神奇,求大神解惑

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-7-10
在线时间
6 小时
发表于 2018-7-18 00:32:37 | 显示全部楼层 |阅读模式
5金钱
我用库函数对ADC进行初始化,设置数据为右对齐,结果测试出来的数据大于4096,发现可能是左对齐的结果,然后再结构体初始化之后再使用寄存器将数据设置为右对齐,输出结果才正确,这到底是怎么回事呢?代码如下:
  
   ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//ADC精度选择12,10,8,6
   ADC_InitStructure.ADC_ScanConvMode = DISABLE;//是否是扫描转换模式(用于多通道 ENABLE,单通道 DISABLE)
   ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//是否是连续转换模式(自己在连续不断地进行转换)
   ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//是否是外部事件触发转换
   ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐
         
   ADC_InitStructure.ADC_NbrOfConversion = 1;
   ADC_Init(ADC3, &ADC_InitStructure);
   ADC3->CR2&=~(1<<11); //不加这句时,输出结果为左对齐

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-7-18 01:28:15 | 显示全部楼层
仿真,跟踪进去ADC_Init看代码的设置过程。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-7-10
在线时间
6 小时
 楼主| 发表于 2018-7-19 20:24:15 | 显示全部楼层
正点原子 发表于 2018-7-18 01:28
仿真,跟踪进去ADC_Init看代码的设置过程。

试过仿真,确实进行初始化了....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 19:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表