關於 ST mems傳感器開發的一些技術分享

關於 STMicroelectronics mems傳感器開發的一些技術分享

ST 的傳感器芯片家族也非常強大,開發包資料全,開發效率高。

實驗材料:

  1、ST Nucleo 開發板系列 開發板
  2、X-Nucleo-IKSO1A2  擴展板
  3、ST 官方技術文檔(包括軟件、參考手冊等)

在這裏插入圖片描述

實驗步驟及技術要點:

1、將Mems擴展板安放在Nucleo 開發上,通過開發板自帶的usb虛擬串口連接電腦。當然實現與電腦的連接,必須首先安裝st 虛擬串口的驅動程序。安裝完成後,電腦會自動識別開發板上的串口。
在這裏插入圖片描述

2、安裝unicleo-GUI 上位機軟件
在這裏插入圖片描述

3、官網下載開發軟件包STM32CubeExpansion_MEMS1_V4.4.1,將對應的軟件通過Keil 或 IAR 開發工具下載到開發板上。

4、串口連接後,通過unicleo-GUI 上位機軟件 可以觀察到傳感器數據窗口

地磁傳感器:
在這裏插入圖片描述
溫溼度、氣壓傳感器:
在這裏插入圖片描述
加速度傳感器:

在這裏插入圖片描述

開發板嵌入式端的關鍵代碼分析:

1、main()函數分析:
開發板是利用HAL庫開發,首先還是

  /* STM32F4xx HAL library initialization:
  - Configure the Flash prefetch, instruction and Data caches
  - Configure the Systick to generate an interrupt each 1 msec
  - Set NVIC Group Priority to 4
  - Global MSP (MCU Support Package) initialization
*/
 HAL_Init();
  /* Configure the system clock */
  SystemClock_Config();

然後是串口、RTC、Sensors 的配置初始化:

 /* Initialize UART */
  USARTConfig();
  /* Initialize RTC */
  RTC_Config();
  RTC_TimeStampConfig();
  /*Initialize Sensors*/
  initializeAllSensors();
  enableAllSensors();

2、主體程序while(1)部分:

  • 與上位機的通訊指令交互:
if (UART_ReceivedMSG((TMsg*) &Msg))
{
  if (Msg.Data[0] == DEV_ADDR)
  {
    HandleMSG((TMsg*) &Msg);
    if ( DataLoggerActive )
    {
      AutoInit = 0;
    }
  }
}
  • 利用RTC進行時間數據上報:
RTC_Handler(&Msg);
  • 傳感器處理函數:
 Pressure_Sensor_Handler(&Msg);

Humidity_Sensor_Handler(&Msg);

Temperature_Sensor_Handler(&Msg);

Accelero_Sensor_Handler(&Msg);

Gyro_Sensor_Handler(&Msg);

Magneto_Sensor_Handler(&Msg);

總結:
STMicroelectronics 提供了完整的Mems 的解決方案。
學習、研究示例程序,是進階必經之路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章