2694|3

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

小白求教--网上博客里的用ADC检测G2553内部温度传感器的值,然后通过串口发送到PC [复制链接]

我想请教的是1、在把程序下载后,串口没有显示出温度的值,只是重复的显示乱码。2、怎么用软件进行调试,同时在哪观察寄存器的值。在这里先谢谢了
下面是程序的代码,调试的截图以及串口显示的乱码。


#include

float adc_voltage;

unsigned int k;

void sys_clk_config(void)

{

  //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ

  DCOCTL = 0;

  BCSCTL1 = CALBC1_1MHZ;

  DCOCTL = CALDCO_1MHZ;

}

void uart_gpio_init(void)

{

  P1SEL |= BIT1 + BIT2;

  P1SEL2  |= BIT1 + BIT2;

  P1DIR |= BIT2;

}

void led_gpio_init(void)

{

}

void ad_gpio_init(void)

{

}

void uart_config(void)

{

UCA0CTL1 |= UCSSEL_2;

  UCA0BR0 = 8;

  UCA0BR1 = 0;

  UCA0MCTL = UCBRS2 + UCBRS0;

  UCA0CTL1 &= ~UCSWRST;

  IE2 |= UCA0RXIE;



}

void ad_config(void)

{

  ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;



  ADC10CTL1 = INCH_5 + CONSEQ_2 ;

  ADC10AE0 |= 0x10;



  ADC10CTL0 |= ENC + ADC10SC;



}

void main()

{

  WDTCTL = WDTPW + WDTHOLD;



  //sys_clk_config();



  uart_gpio_init();



  led_gpio_init();



  ad_gpio_init();



  uart_config();



  ad_config();

  __bis_SR_register(GIE);

  while(1);







}

#pragma vector = USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

{

  // while(!(IFG2 & UCA0TXIFG));

  // UCA0TXBUF = UCA0RXBUF;

}

#pragma vector  = ADC10_VECTOR

__interrupt void ADC10_A0_ISR(void)

{



  while(!(IFG2 & UCA0TXIFG));

  UCA0TXBUF = ((ADC10MEM*33)/1023);

  k = 10000;

  while(k--);



}







1.png (146.52 KB, 下载次数: 0)

1.png

2.png (46.24 KB, 下载次数: 0)

2.png

最新回复

  详情 回复 发表于 2015-8-31 18:19
 
点赞 关注

回复
举报

503

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
波特率会对吗?

点评

我把void uart_config(void)函数和void ad_config(void)函数改成了下面的设置,但串口还是没反应啊,请问这是怎么回事啊 void uart_config(void) { {UCA0CTL1 |= UCSSEL_1; // CLK = ACLK  详情 回复 发表于 2015-8-19 20:45
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

我把void uart_config(void)函数和void ad_config(void)函数改成了下面的设置,但串口还是没反应啊,请问这是怎么回事啊
void uart_config(void)
{
       {UCA0CTL1 |= UCSSEL_1;                // CLK = ACLK
                  //-----移植Grace配置的波特率参数-----
                  UCA0BR0 = 0x03;                           // 32kHz/9600 = 3.41
                  UCA0BR1 = 0x00;
                  UCA0MCTL = UCBRS1 + UCBRS0;     // Modulation UCBRSx = 3
                  UCA0CTL1 &= ~UCSWRST;               // **Initialize USCI state machine**
              IE2 |= UCA0RXIE + UCA0TXIE;           // Enable USCI_A0 TX/RX interrupt
  IE2 |= UCA0RXIE;}

void ad_config(void)
{
        ADC10CTL0 &= ~ENC;
                ADC10CTL0 = ADC10IE + ADC10ON + REFON + ADC10SHT_3 + SREF_1;
            ADC10CTL1 = CONSEQ_0 + ADC10SSEL_0 + ADC10DIV_3 + SHS_0 + INCH_10;
              __delay_cycles(30000);
            ADC10CTL0 |= ENC;
}

 
 
 

回复

1

帖子

2

TA的资源

一粒金砂(初级)

4
 
 
个人签名hh
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
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
快速回复 返回顶部 返回列表