打印
[MCU]

想进行ADC转换,就是不成功

[复制链接]
970|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2020-7-4 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用MSP430F149 ADC12
想进行ADC转换,就是不成功。
请大家帮忙看看问题出在哪里。

/****************************************************************************************
函数名称: ADC12_Init(void)
功    能: ADC12 初始化
参    数: 无
返回值  : 无
****************************************************************************************/
void ADC12_Init(void)
{
P6SEL |= 0x01;   // 选择P6.0作为 ADC
P6DIR &= ~BIT0;  // 设置P6.0为输入

ADC12CTL0 &= ~ENC;                                        // 配置ADC寄存器 必须将ENC清零

ADC12CTL0 |= ADC12ON+SHT0_8+MSC;          // 打开ADC
                                                                            // 采样保持时间为 256 * ADC12CLK
                                                                            // 多次采样转换
ADC12CTL0 |= REFON + REF2_5V;                    // 打开参考电压发生器
                                                                            // 使用2.5V参考电压
ADC12CTL1 |= SHP+CONSEQ_2;                       // ADC12SC 启动 - SHSx = 00
                                                                            // 脉冲采样模式 SHP = 1
                                                                            // ADC12DIV = 000  /1
                                                                            // ADC12SSLx = 00 内部时钟
                                                                            // CONSEQx = 10 单通道多次转换
ADC12MCTL0 |= SREF_1;                                   // SREF0 = 001 - VR+ = VREF+/VR-=AVss
                                                                            // INCH = 0000 - A0
ADC12CTL0 |= ENC;                                           // 使能ADC12
}
/****************************************************************************************
函数名称: ADC12_Convert(void)
功    能: ADC12 启动函数
参    数: 无
返回值  : 无
说明    :
****************************************************************************************/
unsigned int ADC12_Convert(void)
{
unsigned char i;
unsigned int temp;
unsigned long int adc_temp;


for ( i = 0; i < Num_of_Results; i++)
    {
  ADC12CTL0 |=  ADC12SC;      // ADC12SC 启动模式
  while ((ADC12IFG & BIT0) == 0);    // 等待ADC 完成
  temp = ADC12MEM0;
  adc_temp += temp;
    }
adc_temp >>= 4;      // 求平均值
temp=adc_temp;

return temp;
}

使用特权

评论回复

相关帖子

沙发
yszong| | 2020-7-4 18:39 | 只看该作者
还有没?

使用特权

评论回复
板凳
dengdc| | 2020-7-4 18:42 | 只看该作者
初始化没成功吧?  

使用特权

评论回复
地板
jlyuan|  楼主 | 2020-7-4 18:48 | 只看该作者
发送的值固定,不随输入电压的变化而变化。

使用特权

评论回复
5
supernan| | 2020-7-4 18:51 | 只看该作者
转换后把ADC中断标志清零

使用特权

评论回复
6
yinxiangh| | 2020-7-4 18:54 | 只看该作者
转化结果都不对?

使用特权

评论回复
7
morrisk| | 2020-7-4 18:57 | 只看该作者
是休眠后ADC中断没有触发吗

使用特权

评论回复
8
guoyt| | 2020-7-4 19:03 | 只看该作者
硬件有问题吗?

使用特权

评论回复
9
wangzsa| | 2020-7-4 19:05 | 只看该作者
这个有什么问题呢?

使用特权

评论回复
10
zhuww| | 2020-7-4 19:08 | 只看该作者
有什么指示呢?

使用特权

评论回复
11
happy_10| | 2020-7-4 19:13 | 只看该作者
ADC转换的寄存器有问题吗

使用特权

评论回复
12
zhuhuis| | 2020-7-4 19:16 | 只看该作者
这个有可能是没有初始化。

使用特权

评论回复
13
chenho| | 2020-7-4 19:21 | 只看该作者
IO是否进行了初始化呢?

使用特权

评论回复
14
juventus9554| | 2020-7-4 19:24 | 只看该作者
MSP430F149 ADC12硬件电路有问题吗?

使用特权

评论回复
15
renyaq| | 2020-7-4 19:27 | 只看该作者
是不是单次转换?

使用特权

评论回复
16
yinxiangh| | 2020-7-4 19:29 | 只看该作者
使用430内部的ADC?

使用特权

评论回复
17
morrisk| | 2020-7-4 19:32 | 只看该作者
例程和你的板子是匹配的?

使用特权

评论回复
18
zhanglli| | 2020-7-4 19:39 | 只看该作者
能够读取ADC的数值吗?

使用特权

评论回复
19
wangpe| | 2020-7-4 19:42 | 只看该作者
寄存器的数值有什么问题呢?

使用特权

评论回复
20
zhuww| | 2020-7-4 19:46 | 只看该作者
https://wenku.baidu.com/view/ae4a88926bd97f192279e9c8.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝