关于 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 的解决方案。
学习、研究示例程序,是进阶必经之路。

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