你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1642|回复: 2

【HAL库每天一例】第087例:SW-420震动模块传感器实验

[复制链接]

122

主题

129

回帖

0

蝴蝶豆

论坛元老

最后登录
2019-5-28
发表于 2016-8-8 08:38:30 | 显示全部楼层 |阅读模式
【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。

例程下载:
资料包括程序、相关说明资料以及软件使用截图

百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1
360云盘:http://yunpan.cn/OcPiRp3wEcA92u密码 cfb6
(硬石YS-F1Pro开发板HAL库例程持续更新\2. 软件设计之高级裸机例程(HAL库版本)\YSF1_HAL-120. SW-420震动模块传感器实验
/**
  ******************************************************************************
  *                           硬石YS-F1Pro开发板例程功能说明
  *
  *  例程名称: YSF1_HAL-120. SW-420震动模块传感器实验
  *   
  ******************************************************************************
  * 说明:
  * 本例程配套硬石stm32开发板YS-F1Pro使用。
  *
  * 淘宝:
  * 论坛:硬石电子社区
  * 版权归硬石嵌入式开发团队所有,请勿商用。
  ******************************************************************************
  */

【1】例程简介
  FSMC:可变静态存储控制器,是STM32系列采用的一种新型的存储器扩展技术。一般可以用FSMC
接口与液晶驱动IC连接,实现数据交换。YS-F1Pro预留16bit的FSMC液晶接口,我们同时提供了
3.5寸TFT液晶模组供选购,该模组的液晶驱动IC型号为ILI9488。
  用于各种震动触发作用,报盗报警,智能小车,地震报警,摩托车报警等。本模块与常开型震动
传感器模块相比,震动触发的时间更长,可以驱动继电器模块输出端可以与单片机直接相连,通过
单片机来检测高低电平,由此来检测环境是否有震动,起到报警作用
  
【2】跳线帽情况
******* 为保证例程正常运行,必须插入以下跳线帽 **********
丝印编号     IO端口      目标功能引脚        出厂默认设置
  JP1        PA10        TXD(CH340G)          已接入
  JP2        PA9         RXD(CH340G)          已接入
  
【3】操作及现象
把3.5寸TFT液晶模组插入开发板中间液晶接口上,使用开发板配套的MINI USB线连接到开发板标
示“调试串口”字样的MIMI USB接口(需要安装驱动),在电脑端打开串口调试助手工具,设置参
数为115200 8-N-1。下载完程序之后,将震动模块OUT端接入PD3引脚,供电,通过检测是否有震动
在LCD上显示。

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
CubeMX_1.jpg CubeMX_2.jpg CubeMX_3.jpg CubeMX_4.jpg
CubeMX_5.jpg
CubeMX_6.jpg
CubeMX_7.jpg
CubeMX_8.jpg
CubeMX_9.jpg
CubeMX_10.jpg
CubeMX_11.jpg
CubeMX_12.jpg


bsp_sw420.h文件内容
  1. #ifndef __BSP_SW420_H__
  2. #define __BSP_SW420_H__

  3. /* 包含头文件 ----------------------------------------------------------------*/
  4. #include "stm32f1xx_hal.h"

  5. /* 类型定义 --------------------------------------------------------------*/
  6. typedef enum
  7. {
  8.   SW420_LOW   = 0,
  9.   SW420_HIGH = 1,
  10. }SW420_State_TypeDef;

  11. /* 宏定义 --------------------------------------------------------------------*/
  12. #define SW420_RCC_CLK_ENABLE()         __HAL_RCC_GPIOD_CLK_ENABLE()
  13. #define SW420_GPIO_PIN                 GPIO_PIN_3
  14. #define SW420_GPIO                     GPIOD
  15. #define SW420_ACTIVE_LEVEL             1

  16. /* 扩展变量 ------------------------------------------------------------------*/
  17. /* 函数声明 ------------------------------------------------------------------*/
  18. void SW420_GPIO_Init(void);
  19. SW420_State_TypeDef SW420_StateRead(void);


  20. #endif  // __BSP_SW420_H__

  21. /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
复制代码


bsp_sw420.c文件内容
  1. /**
  2.   ******************************************************************************
  3.   * 文件名程: bsp_SW420.c
  4.   * 作    者: 硬石嵌入式开发团队
  5.   * 版    本: V1.0
  6.   * 编写日期: 2015-10-04
  7.   * 功    能: SW420震动模块传感器检测
  8.   ******************************************************************************
  9.   * 说明:
  10.   * 本例程配套硬石stm32开发板YS-F1Pro使用。
  11.   *
  12.   * 淘宝:
  13.   * 论坛:http://www.ing10bbs.com
  14.   * 版权归硬石嵌入式开发团队所有,请勿商用。
  15.   ******************************************************************************
  16.   */

  17. /* 包含头文件 ----------------------------------------------------------------*/
  18. #include "SW420/bsp_SW420.h"

  19. /* 私有类型定义 --------------------------------------------------------------*/
  20. /* 私有宏定义 ----------------------------------------------------------------*/
  21. /* 私有变量 ------------------------------------------------------------------*/
  22. /* 扩展变量 ------------------------------------------------------------------*/
  23. /* 私有函数原形 --------------------------------------------------------------*/
  24. /* 函数体 --------------------------------------------------------------------*/

  25. /**
  26.   * 函数功能: SW420震动模块传感器IO引脚初始化.
  27.   * 输入参数: 无
  28.   * 返 回 值: 无
  29.   * 说    明:引脚进行初始化
  30.   *           
  31.   */
  32. void SW420_GPIO_Init(void)
  33. {
  34.    /* 定义IO硬件初始化结构体变量 */
  35.   GPIO_InitTypeDef GPIO_InitStruct;
  36.         
  37.         /* 使能(开启)SW420引脚对应IO端口时钟 */  
  38.   SW420_RCC_CLK_ENABLE();
  39.    
  40.   /* 设定SW420对应引脚IO编号 */
  41.   GPIO_InitStruct.Pin = SW420_GPIO_PIN;  
  42.   /* 设定SW420对应引脚IO操作速度*/
  43.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;  
  44.   /* 设定SW420对应引脚IO为浮空输入模式 */
  45.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;  
  46.   /* 初始化SW420对应引脚IO */
  47.   HAL_GPIO_Init(SW420_GPIO, &GPIO_InitStruct);
  48. }

  49. /**
  50.   * 函数功能: 简单粗暴的延时函数
  51.   * 输入参数: time;延时时间设置
  52.   * 返 回 值: 无
  53.   * 说    明:软件消抖
  54.   */
  55. static void SW420_ScanDelay(void)
  56. {  
  57.   uint32_t i,j;
  58.   for(i=0;i<100;++i)
  59.     for(j=0;j<1000;++j){ }               
  60. }

  61. /**
  62.   * 函数功能: 读取引脚的状态
  63.   * 输入参数:无
  64.   * 返 回 值: SW420_HIGH:有震动;
  65.   *           SW420_LOW:无震动
  66.   * 说    明:无。
  67.   */
  68. SW420_State_TypeDef SW420_StateRead(void)
  69. {
  70.   /* 读取模块输出信号,若此时输出的是高电平 ,则进入下一步判断*/
  71.   if(HAL_GPIO_ReadPin(SW420_GPIO,SW420_GPIO_PIN)==SW420_ACTIVE_LEVEL)
  72.   {
  73.     /* 延时一小段时间,消除抖动 */
  74.     SW420_ScanDelay();
  75.     /* 延时时间后再来判断引脚状态,如果还是高电平那么确实就是高电平 */
  76.     if(HAL_GPIO_ReadPin(SW420_GPIO,SW420_GPIO_PIN)==SW420_ACTIVE_LEVEL)
  77.     {      
  78.        /* 扫描完毕,确定有震动,返回震动状态(高电平) */
  79.       return SW420_HIGH;
  80.     }
  81.   }
  82.   /* 无震动,返回无震动状态 */
  83.   return SW420_LOW;
  84. }
  85. /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
复制代码



<
回复

使用道具 举报

100

主题

3617

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2016-8-8 10:10:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

15

主题

930

回帖

29

蝴蝶豆

金牌会员

最后登录
2020-8-17
发表于 2016-8-8 14:01:03 | 显示全部楼层
赞一个
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版