5913|8

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一段MSP430G2553通过ADC采集数据发送到电脑端的程序 [复制链接]

这是在网上找到并略加修改的一段代码 通过串口调试助手测试的时候 设定的ADC输入端未连接任何信号源 单片机不断发出数据   也不知道是什么东西  求大神指导

最新回复

初始化写的有问题加一句  ADC10AE0 |= 0x01;//模拟信号输入使能 采样口是P1.0  详情 回复 发表于 2015-6-2 21:54
 
点赞 关注

回复
举报

11

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
#include
unsigned int k;
char str[]="00.0";
long temp;
unsigned char tmp[3];
long IntDeg;
void ADC10_ISR(void);
void ADC10_init(void);
void Init_uart0(void);


void Uart0Sends(char *s)
{
  while(*s!='\0')  //查找字符。
  {
    UCA0TXBUF=*s;
    while((IFG2&UCA0TXIFG)==0); //查询发送是否结束,寄存器为空置位,满为复位??
    IFG2&=~UCA0TXIFG; //清除发送一标志位,多余的语句,发送完毕
    s++;
  }
}


void main()
{
        WDTCTL=WDTPW+WDTHOLD;
        ADC10_init();
          BCSCTL1 = CALBC1_1MHZ;
          DCOCTL  = CALDCO_1MHZ;
                  P1DIR|=BIT0;
        Init_uart0();

        _EINT();
    while(1)
    {
      ADC10CTL0 |= ENC + ADC10SC;            // Sampling and conversion start   采样开始,
//     _bis_SR_register(CPUOFF + GIE);                // LPM0 with interrupts enabled
      __delay_cycles(1000);
      //-----ADC转换完成中断唤醒CPU后才执行以下代码-----

      temp = ADC10MEM;
      //读取AD采样值
//      IntDeg= temp*4225/1024 - 2777;//转换为摄氏度,并10倍处理
      IntDeg=((temp*33)/1023);
//if(IntDeg>=200)
//                       P1OUT |= BIT0;
//                     else
//                       P1OUT &= ~BIT0;
      str[0]=IntDeg/100+0X30;
     str[1]=IntDeg%100/10+0X30;
     str[3]=IntDeg%100%10+0X30;

//  IntDeg=-123;                                                                        //由于难以获得负温,直接给负值以测试LCD显示
    }

}

/******************************************************************************************************
* 名       称:ADC10_init(void)
* 功       能:初始化ADC10采集内部温度传感器,单次手动采样
* 入口参数:无
* 出口参数:无
* 说       明:直接从CCS的Example中移植过来
* 范       例:无
******************************************************************************************************/
void ADC10_init(void)
{
        P1DIR&=~BIT4;
        ADC10CTL0 &= ~ENC;  //  关闭AD转换器
        ADC10CTL0 = ADC10IE + ADC10ON + REFON + ADC10SHT_3 + SREF_1;//1    允许ADC10中断   1    ADC10开启 ,打开基准源    64个ADC10CLK周期
    ADC10CTL1 = CONSEQ_0 + ADC10SSEL_0 + ADC10DIV_3 + SHS_0 + INCH_4;//单通道单次采样模式     ADC10OSC  8分频     ADC10SC位
      __delay_cycles(30000);
    ADC10CTL0 |= ENC;   //开启AD转换器
}
/******************************************************************************************************
* 名       称:ADC10_ISR_HOOK
* 功       能:ADC转换完成后唤醒CPU
* 入口参数:无
* 出口参数:无
* 说       明:直接从CCS的Example中移植过来
* 范       例:无
******************************************************************************************************/
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR_HOOK(void)
{
         Uart0Sends(str);
        _bic_SR_register_on_exit(LPM4_bits);
}
/**********************************************************************************************************
* 串口初始化
********************************************************************************************************* */
void Init_uart0()
{
  UCA0CTL1|=UCSWRST;
  P1SEL|=BIT1+BIT2; //将P1.1 P1.2设为第二功能
  P1SEL2|=BIT1+BIT2;//系统组合
  P1DIR  |= BIT2;           //P1.2  UART_TX
  P1DIR  &=~BIT1;           //P1.2  UART_RX
  UCA0CTL0&=~UC7BIT;//字符长度为8
  UCA0CTL1|=UCSSEL_2;//选择系统时钟
  UCA0BR0=0x68;  //波特率为9600
  UCA0BR1=0;
  UCA0MCTL=0X40;//UCA0MCTL=UCBRS0;
  UCA0CTL1&=~UCSWRST;

  IE2|=UCA0RXIE;//开接收使能

}




#pragma vector=USCIAB0RX_VECTOR
__interrupt void usart0_rx(void)
{
  while((IFG2&UCA0RXIFG )==0);//接收一位然后给发送缓存器 再中断再接受 再发送的过程
  IFG2&=~UCA0RXIFG ;


  Uart0Sends(str);

  UCA0TXBUF = UCA0RXBUF;
}




 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
没去看代码,需要指出的是,程序不管你有没有输入,它只会按指令办事,浮空输入同样也会转换并输出。
你可以将模拟输入管脚接在一个稳定的电平上,看看转换结果是否同样稳定。
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

4
 
ADC输入端未连接任何信号源 ,你不连接信号源,输入端也是有电压值得,只要采样,计算,发送,电脑就可以收到数据啊。

点评

关键是AD输入端接上信号源之后没什么变化  详情 回复 发表于 2015-6-2 20:29
 
 
 

回复

9826

帖子

24

TA的资源

版主

5
 
同意楼上二位的说法
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

6
 
同意二楼的,你不接入信号源,AD也会有数值漂的
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

7
 
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸℃ぞ绮℃俊鐐€栭崝褏绮婚幋鐘差棜闁秆勵殕閻撴洟鏌熼柇锕€鐏遍柛銈咁儔閺屻倝寮堕幐搴′淮闂佸搫鏈粙鎴﹀煡婢跺ň鏋庨柟閭﹀枤閳诲繘姊虹拠鎻掝劉闁煎綊绠栬棟濞村吋娼欐闂佸憡娲﹂崹鎵不閹惰姤鐓曢柍鈺佸暔娴狅箑顭跨憴鍕缂佽鲸鎹囧畷鎺戔枎閹存繂顬夋俊鐐€戦崝灞轿涘┑瀣瀬闁告劦鍠栭~鍛存煟濡櫣浠涙繛鍫熷劤閳规垶骞婇柛濠冩礋楠炲﹥鎯旈姀鐘插闂傚倸鍊风粈渚€鎮块崶褜娴栭柕濞у懐鐒兼繛杈剧秬椤宕h箛娑欑厪闁割偅绻嶅Σ褰掓煟閹捐泛鏋涢柡宀嬬到椤粓鍩€椤掍胶顩查悹杞拌閻庡爼鏌i幋锝呅撻柣鎾存礋閺岋繝宕掑┑鍥┿€婄紓浣哄Х缁垶濡甸崟顖氼潊闁挎稑瀚崳鏉课旈悩闈涗粶妞ゆ垵顦靛顐﹀磼閻愭潙娈熼梺闈涱檧婵″洩銇愰妸鈺傗拺閻犲洦鐓¢妤呮煕濡崵鐭掔€规洘鍨块獮妯肩磼濡厧骞堥梻浣哥秺閸嬪﹪宕㈡總绋跨闁靛牆妫涚粻楣冩煕椤愵偄澧悗姘炬嫹闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垿鐛姀銈嗙厓閺夌偞澹嗛崝宥嗐亜閺傚灝顏紒杈ㄦ崌瀹曟帒顫濋钘変壕闁告縿鍎抽惌娆撴煕閺囥劌鐏犵紒鐙€鍨堕弻銊╂偆閸屾稑顏�闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀缁犵娀鏌熼崜褏甯涢柛瀣ㄥ€濋弻鏇熺箾閻愵剚鐝曢梺绋款儏椤戝寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑缂佹ê绗掗柣蹇斿哺婵$敻宕熼姘鳖唺闂佽鎯岄崹閬嶅极妤e啯鐓熼幖娣灮閸熸煡鏌熼崙銈嗗婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋鏃€鍤嶉柛銉墻閺佸洭鏌曡箛鏇炐ユい锔诲櫍閹宕楁径濠佸闂備礁鎲″ú锕傚磻婢舵劕鏄ラ柣鎰劋閳锋垿鎮归幁鎺戝婵炲懏鍔欓弻鐔煎礄閵堝棗顏�
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

8
 
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸℃ぞ绮℃俊鐐€栭崝褏绮婚幋鐘差棜闁秆勵殕閻撴洟鏌熼柇锕€鐏遍柛銈咁儔閺屻倝寮堕幐搴′淮闂佸搫鏈粙鎴﹀煡婢跺ň鏋庨柟閭﹀枤閳诲繘姊虹拠鎻掝劉闁煎綊绠栬棟濞村吋娼欐闂佸憡娲﹂崹鎵不閹惰姤鐓曢柍鈺佸暔娴狅箑顭跨憴鍕缂佽鲸鎹囧畷鎺戔枎閹存繂顬夋俊鐐€戦崝灞轿涘┑瀣瀬闁告劦鍠栭~鍛存煟濡櫣浠涙繛鍫熷劤閳规垶骞婇柛濠冩礋楠炲﹥鎯旈姀鐘插闂傚倸鍊风粈渚€鎮块崶褜娴栭柕濞у懐鐒兼繛杈剧秬椤宕h箛娑欑厪闁割偅绻嶅Σ褰掓煟閹捐泛鏋涢柡宀嬬到椤粓鍩€椤掍胶顩查悹杞拌閻庡爼鏌i幋锝呅撻柣鎾存礋閺岋繝宕掑┑鍥┿€婄紓浣哄Х缁垶濡甸崟顖氼潊闁挎稑瀚崳鏉课旈悩闈涗粶妞ゆ垵顦靛顐﹀磼閻愭潙娈熼梺闈涱檧婵″洩銇愰妸鈺傗拺閻犲洦鐓¢妤呮煕濡崵鐭掔€规洘鍨块獮妯肩磼濡厧骞堥梻浣哥秺閸嬪﹪宕㈡總绋跨闁靛牆妫涚粻楣冩煕椤愵偄澧悗姘炬嫹闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垿鐛姀銈嗙厓閺夌偞澹嗛崝宥嗐亜閺傚灝顏紒杈ㄦ崌瀹曟帒顫濋钘変壕闁告縿鍎抽惌娆撴煕閺囥劌鐏犵紒鐙€鍨堕弻銊╂偆閸屾稑顏�闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀缁犵娀鏌熼崜褏甯涢柛瀣ㄥ€濋弻鏇熺箾閻愵剚鐝曢梺绋款儏椤戝寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑缂佹ê绗掗柣蹇斿哺婵$敻宕熼姘鳖唺闂佽鎯岄崹閬嶅极妤e啯鐓熼幖娣灮閸熸煡鏌熼崙銈嗗婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋鏃€鍤嶉柛銉墻閺佸洭鏌曡箛鏇炐ユい锔诲櫍閹宕楁径濠佸闂備礁鎲″ú锕傚磻婢舵劕鏄ラ柣鎰劋閳锋垿鎮归幁鎺戝婵炲懏鍔欓弻鐔煎礄閵堝棗顏�
 
 
 

回复

27

帖子

1

TA的资源

一粒金砂(中级)

9
 
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸℃ぞ绮℃俊鐐€栭崝褏绮婚幋鐘差棜闁秆勵殕閻撴洟鏌熼柇锕€鐏遍柛銈咁儔閺屻倝寮堕幐搴′淮闂佸搫鏈粙鎴﹀煡婢跺ň鏋庨柟閭﹀枤閳诲繘姊虹拠鎻掝劉闁煎綊绠栬棟濞村吋娼欐闂佸憡娲﹂崹鎵不閹惰姤鐓曢柍鈺佸暔娴狅箑顭跨憴鍕缂佽鲸鎹囧畷鎺戔枎閹存繂顬夋俊鐐€戦崝灞轿涘┑瀣瀬闁告劦鍠栭~鍛存煟濡櫣浠涙繛鍫熷劤閳规垶骞婇柛濠冩礋楠炲﹥鎯旈姀鐘插闂傚倸鍊风粈渚€鎮块崶褜娴栭柕濞у懐鐒兼繛杈剧秬椤宕h箛娑欑厪闁割偅绻嶅Σ褰掓煟閹捐泛鏋涢柡宀嬬到椤粓鍩€椤掍胶顩查悹杞拌閻庡爼鏌i幋锝呅撻柣鎾存礋閺岋繝宕掑┑鍥┿€婄紓浣哄Х缁垶濡甸崟顖氼潊闁挎稑瀚崳鏉课旈悩闈涗粶妞ゆ垵顦靛顐﹀磼閻愭潙娈熼梺闈涱檧婵″洩銇愰妸鈺傗拺閻犲洦鐓¢妤呮煕濡崵鐭掔€规洘鍨块獮妯肩磼濡厧骞堥梻浣哥秺閸嬪﹪宕㈡總绋跨闁靛牆妫涚粻楣冩煕椤愵偄澧悗姘炬嫹闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掍礁鍓銈嗗姧缁犳垿鐛姀銈嗙厓閺夌偞澹嗛崝宥嗐亜閺傚灝顏紒杈ㄦ崌瀹曟帒顫濋钘変壕闁告縿鍎抽惌娆撴煕閺囥劌鐏犵紒鐙€鍨堕弻銊╂偆閸屾稑顏�闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀缁犵娀鏌熼崜褏甯涢柛瀣ㄥ€濋弻鏇熺箾閻愵剚鐝曢梺绋款儏椤戝寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑缂佹ê绗掗柣蹇斿哺婵$敻宕熼姘鳖唺闂佽鎯岄崹閬嶅极妤e啯鐓熼幖娣灮閸熸煡鏌熼崙銈嗗婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋鏃€鍤嶉柛銉墻閺佸洭鏌曡箛鏇炐ユい锔诲櫍閹宕楁径濠佸闂備礁鎲″ú锕傚磻婢舵劕鏄ラ柣鎰劋閳锋垿鎮归幁鎺戝婵炲懏鍔欓弻鐔煎礄閵堝棗顏�
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
ADI &文晔 探索季第一站,邀您在活动帖跟帖,ADI资深工程师将与您一道寻求解决之道! ...
春晚,最出圈当属穿着棉马甲跳秧歌的机器人”秧Bot”。
转手绢、飞手绢、变换队形,精准度和稳定性甚至超越人类,这背后少不了电机控制技术。

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表