网站建设实训的目的,wordpress log文件,8大营销工具指的是哪些,wordpress 防分析震动传感器简单介绍 若产品不震动#xff0c;模块上的 DO 口输出高电平#xff1b; 若产品震动#xff0c;模块上的 DO 口输出低电平#xff0c;D0-LED绿色指示灯亮。 震动传感器与STM32的接线 编程实现 需求#xff1a;当震动传感器接收到震动信号时#xff0c;使用中断…震动传感器简单介绍 若产品不震动模块上的 DO 口输出高电平 若产品震动模块上的 DO 口输出低电平D0-LED绿色指示灯亮。 震动传感器与STM32的接线 编程实现 需求当震动传感器接收到震动信号时使用中断的方式点亮led1。
1、打开cubeMX
a.在SYS中选择调试方式为串行线调试。 b.在RCC(复位和时钟控制)中选择 HSE高速时钟为crystal resonator晶振。 c.在CLOCK Configuration中沿着红色的主线依次选择并将频率改为72MHZ。 d.在GPIO中选择PB8(LED1)为GPIO_outputPA4为中断方式触发选择GPIO_XETI 4,并且因为震动传感器震动模块上的DO口输出低电平所以将GPIO_mode设置为下降沿触发由于一开始需要让led1是灭的状态所以设置PB8的GPIO output level为HIGH。 e.在NVIC中打开PA4的中断使能中断。 f. 在Project Manager中设置工程名字、开发环境选择MDK-ARM并且勾选以下两个选项 g. Generate Code
2、打开KEIL5工程
a.先进行编译然后找到EXTI 4中断服务程序选中调用的函数点击F12跳转到被调用函数 b.将虚函数复制到main函数文件中进行编写 c.添加延时接收到震动信号就亮1秒
但是延时有个坑 如果直接在中断服务函数里调用 HAL_Delay 函数则会造成系统卡死。 原因程序初始化时 默认把滴答定时器的中断优先级设为最低 其它中断源很容易打断它导致卡 死。 解决在 main 函数里使用以下函数提高滴答定时器的中断优先级提升至 0 HAL_NVIC_SetPriority ( SysTick_IRQn , 0 , 0 ); 并且将 EXTI4 的中断优先级设置比滴答定时器的中断优先级小比如 2 。