stm32——电动车报警器

一、硬件
  STM32(上官二号)、震动传感器、M433无线模块、继电器、高功率喇叭、电池组

二、接线(传输原理)
  震动传感器,D0接PA4(震动时输出低电平)
  继电器vcc接3.3,IN接PB8(输入低电平,继电器闭合)
  M433 D0接PA5,D1接PA6(按键A\B按下,D0\D1电平拉高)

三、cubeMX实现
1、先用PA4中断实现按键点亮D3_PB8:SYS选择串口→RCC配置外部晶振、clock配置时钟→PA4设置为下降沿中断,NVIC打开中断→PA8电平设置为高→命名为alert_project→toolchain/IDE配置为MDK-ARM→对代码生成.c/.h文件→生成完成


  进入keil5
  如果直接在中断函数里调用HAL_Delay函数,会造成系统卡死:原因,程序初始化是默认把滴答定时器的中断优先级设为最低,导致中断元很容易被打断导致卡死。解决方法——在main函数里使用HAL_NVIC_SetPriority(SysTick_IRQn,0,0);函数提高其中断优先级,并将EXTI4 的中断优先级设置比滴答定时器的中断优先级高,比如 2 。

2、添加M433控制,按键按下,电平拉高(上升沿中断),并且换为PB7连接继电器,添加mark标志位,a按键按下标志on,b按键按下标志off,在on的状态下触发震动传感器喇叭才会一直响

如果直接在中断服务函数里调用HAL_Delay函数,则会造成系统卡死。原因:程序初始化时默认把嘀嗒定时器的中断优先级设置为最低,其他中断源很容易打断它导致卡死。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值