2926|1

9795

帖子

24

TA的资源

版主

楼主
 

LSM6DSL 自由落体检测 STM32L4R5 [复制链接]

 
使用STMems_Standard_C_drivers库
程序参考了STM32CubeExpansion MEMS-XT1的LSM6DSL_FreeFallDetection


  1. void lsm6dsl_free_fall_detection(void)
  2. {  
  3.   /*
  4.    *  Initialize mems driver interface
  5.    */
  6.   dev_ctx.write_reg = platform_write;
  7.   dev_ctx.read_reg = platform_read;
  8.   dev_ctx.handle = &hi2c1;  
  9.   
  10.   /*
  11.    *  Check device ID
  12.    */
  13.   whoamI = 0;
  14.   lsm6dsl_device_id_get(&dev_ctx, &whoamI);
  15.   if ( whoamI != LSM6DSL_ID )
  16.     while(1); /*manage here device not found */
  17.   /*
  18.    *  Restore default configuration
  19.    */
  20.   lsm6dsl_reset_set(&dev_ctx, PROPERTY_ENABLE);
  21.   do {
  22.     lsm6dsl_reset_get(&dev_ctx, &rst);
  23.   } while (rst);
  24.   /*
  25.    *  Enable Block Data Update
  26.    */
  27.   lsm6dsl_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
  28.   /*
  29.    * Set Output Data Rate
  30.    */
  31.   lsm6dsl_xl_data_rate_set(&dev_ctx, LSM6DSL_XL_ODR_416Hz);
  32.   /*
  33.    * Set full scale
  34.    */  
  35.   lsm6dsl_xl_full_scale_set(&dev_ctx, LSM6DSL_2g);
  36.   lsm6dsl_wkup_dur_set(&dev_ctx,0);
  37.   lsm6dsl_timestamp_res_set(&dev_ctx,LSM6DSL_LSB_6ms4);
  38.   lsm6dsl_act_sleep_dur_set(&dev_ctx,0);
  39.   lsm6dsl_ff_dur_set(&dev_ctx,0);
  40.   lsm6dsl_ff_threshold_set(&dev_ctx,LSM6DSL_FF_TSH_312mg);
  41.   /*
  42.    * 中断
  43.    */  
  44.   lsm6dsl_int1_route_t lsm6dsl_int1_route;
  45.   lsm6dsl_int1_route.int1_ff = 1;
  46.   lsm6dsl_pin_int1_route_set(&dev_ctx,lsm6dsl_int1_route);
  47.   lsm6dsl_all_sources_t lsm6dsl_all_sources;
  48.   while(1)
  49.   {
  50.     if(int1_flag == 1)
  51.     {
  52.       int1_flag = 0;
  53.       lsm6dsl_all_sources_get(&dev_ctx,&lsm6dsl_all_sources);
  54.       if(lsm6dsl_all_sources.reg.wake_up_src.ff_ia == 1)
  55.       {
  56.         
  57.         snprintf(data_out, MAX_BUF_SIZE, "free fall indication.\r\n");
  58.         tx_com((uint8_t*)data_out, strlen(data_out));
  59.       }
  60.     }
  61.   }
  62. }
复制代码






工程文件
lsm6dsl stm32l4r5 free_fall_detection.rar (9.52 MB, 下载次数: 5)

最新回复

谢谢分享  详情 回复 发表于 2018-6-30 09:50
点赞 关注
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

182

帖子

0

TA的资源

禁止发言

沙发
 
谢谢分享
个人签名嘉立创PCB打样  QQ800058452
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表