|
小白求教--网上博客里的用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)
-
2.png
(46.24 KB, 下载次数: 0)
|