您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > Launchpad的温度测量及串口发送 -
本文所属标签:
为本文创立个标签吧:

Launchpad的温度测量及串口发送 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]1 #include "msp430g2553.h"23 void sendChar(unsigned char c)4 {5 while(!(IFG2&UCA0TXIFG));6 UCA0TXBUF=c;7 }89 void sendStr(unsigned char *s)10 {11 while(*s!='\0')12 {13 sendChar(

1 #include "msp430g2553.h"

本文引用地址: http://www.21ic.com/app/mcu/201808/783425.htm

2

3 void sendChar(unsigned char c)

4 {

5 while(!(IFG2&UCA0TXIFG));

6 UCA0TXBUF=c;

7 }

8

9 void sendStr(unsigned char *s)

10 {

11 while(*s!='\0')

12 {

13 sendChar(*s);

14 s++;

15 }

16 }

17

18 void main(void)

19

20 {

21

22 unsigned char i;

23 unsigned char temp;

24 unsigned long tempAverage;

25 unsigned long tempMeasured[8];

26

27 WDTCTL = WDTPW + WDTHOLD; // Stop WDT

28

29 BCSCTL1 = CALBC1_1MHZ; // Set DCO

30 DCOCTL = CALDCO_1MHZ;

31 BCSCTL2 &= ~(DIVS_3);

32

33

34 P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD

35 P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD

36

37 UCA0CTL1 |= UCSSEL_2; // SMCLK

38 UCA0BR0 = 104; // 1MHz 9600

39 UCA0BR1 = 0; // 1MHz 9600

40 UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1

41 UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**

42

43 //IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt

44

45 ADC10CTL1 = INCH_10 + ADC10DIV_3; // Temp Sensor ADC10CLK/4 选择内部温度传感器通道,4分频

46 ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON ;

47 __delay_cycles(1000); // Wait for ADC Ref to settle

48 ADC10CTL0 |= ENC + ADC10SC;

49

50 _EINT();

51

52 sendStr("n======== LaunchPad 温度计=======n");

53

54 //__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled

55

56

57 while(1)

58 {

59 if(i>7)

60 {

61 tempAverage=0;

62 for(;i>0;i--)

63 tempAverage+=tempMeasured[i-1];

64 tempAverage >>= 3;

65 temp=(unsigned char)( ((tempAverage - 630) * 761) / 1024 );

66 sendStr("n 华氏温度:");

67 sendChar(temp%100/10+48);

68 sendChar(temp%10+48);

69 sendStr(" | 摄氏温度:");

70 temp=(temp-32)*5/9;

71 sendChar(temp%100/10+48);

72 sendChar(temp%10+48);

73 sendChar('n');

74

75 }

76 else

77 {

78 ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start 抽样及转换

79 tempMeasured[i]=ADC10MEM;

80 i++;

81 }

82

83 __delay_cycles(100000);

84

85

86 }

87 }

88

89 // Echo back RXed character, confirm TX buffer is ready first

90 /*

91 #pragma vector=USCIAB0RX_VECTOR

92 __interrupt void USCI0RX_ISR(void)

93 {

94 while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?

95 UCA0TXBUF = UCA0RXBUF; // TX -> RXed character

96 }

97

98 */




              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > Launchpad的温度测量及串口发送 -
 

"Launchpad的温度测量及串口发送 -"的相关文章

网站地图

围观()