# MSP430嵌入式接口编程(惯性测量单元温湿度双音多频磁力计LCD显示等）

{% tabs %}
{% tab title="关键词" %}
MSP430 | Energia IDE | 通用输入输出(GPIO) | 定时器 | 中断 | 加速度计 | 惯性测量单元 | 温湿度 | 双音多频 | LCD | 土壤水分 | 无源红外传感器PIR | 红外通讯 | 直流电机 | 双频 | GPS | 磁力计 | C/C++ | 伺服电机 | 超声波 | ZigBee
{% endtab %}

{% tab title="梗概" %}
Energia IDE编程MSP430

* GPIO
* 串口通讯
* 定时中断
* 添加库

### 嵌入式器件接口编程

*   加速度计

    ```c
    #include <math.h>

    void loop() {
      int x_adc_value, y_adc_value, z_adc_value; 
      double x_g_value, y_g_value, z_g_value;
      double roll, pitch, yaw;
      x_adc_value = analogRead(x_out); 
      y_adc_value = analogRead(y_out); 
      z_adc_value = analogRead(z_out); 
      Serial.print("x = ");
      Serial.print(x_adc_value);
      Serial.print("\\t\\t");
      Serial.print("y = ");
      Serial.print(y_adc_value);
      Serial.print("\\t\\t");
      Serial.print("z = ");
      Serial.print(z_adc_value);
      Serial.print("\\t\\t");
       
      x_g_value = ( ( ( (double)(x_adc_value * 3.3)/1024) - 1.65 ) / 0.330 );  
      y_g_value = ( ( ( (double)(y_adc_value * 3.3)/1024) - 1.65 ) / 0.330 ); 
      z_g_value = ( ( ( (double)(z_adc_value * 3.3)/1024) - 1.80 ) / 0.330 );  

      roll = ( ( (atan2(y_g_value,z_g_value) * 180) / 3.14 ) + 180 ); 
      pitch = ( ( (atan2(z_g_value,x_g_value) * 180) / 3.14 ) + 180 ); 
     
      Serial.print("Roll = ");
      Serial.print(roll);
      Serial.print("\\t");
      Serial.print("Pitch = ");
      Serial.print(pitch);
      Serial.print("\\n\\n");
      delay(1000);
    }
    ```
* 温湿度
* 双音多频
* LCD
* 土壤水分传感器
* 无源红外传感器
* 红外通讯
* 直流电机
* 蓝牙模块
* 7段数显
* 模拟量手柄（2维轴动）
* 双频 GSM/GPRS 900/1800MHz 模块
* GPS模块
* 4\*4键盘
* 温度传感器
* 磁力计
* 惯性测量单元
* 步进电机
* 伺服电机
* 热敏电阻
* 超声波传感器
* 图形显示
* OLED
* ZigBee通讯
{% endtab %}
{% endtabs %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
