STM32之电动车报警项目实战

目录

一、433M无线发射接收模块介绍

二、项目设计

三、编写代码

1、初始化GPIO口引脚函数

2、编写中断服务函数

3、用外部中断共用入口函数,来调用外部中断处理回调函数

4、编写外部中断处理回调函数(在这里编写项目设计的逻辑)

5、把上述的外部中断处理回调函数,放入main主函数里

6、结果演示


一、433M无线发射接收模块介绍

单片机供电VCC GND接单片机
接收到信号,接收模块对应针脚输出高电平
有D0 D1 D2 D3,对应遥控器的ABCD

二、项目设计

//如果检测到PA4被拉低(小偷偷车),并且警报模式打开
    //则将PB7拉低,继电器通电,喇叭一直响
// 如果检测到PA5被拉高(按键A按下),设定为开启警报模式
    // 则将PB7拉低(喇叭响),2秒后恢复电平(喇叭不响),表示进入警报模式
    // 同时将标志位设置为ON
// 如果检测到PA6被拉高(按键B按下),设定为关闭警报模式
    // 则将PB7拉低(喇叭响),1秒后恢复电平(喇叭不响),表示关闭警报模式
    // 同时将标志位设置为OFF

温馨提示:由于我没有喇叭,所以下面的实验由LED灯来代替喇叭

三、编写代码

1、初始化GPIO口引脚函数

void MX_GPIO_Init(void)     //初始化GPIO口引脚函数
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};   //初始花设置GPIO的结构体

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOD_CLK_ENABLE();    //使能GPIOD时钟
  __HAL_RCC_GPIOA_CLK_ENABLE();    //使能GPIOA时钟
  __HAL_RCC_GPIOB_CLK_ENABLE();    //使能GPIOB时钟

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);  //GPIO B8引脚输出1的函数

  /*Configure GPIO pin : PA4 */
  GPIO_InitStruct.Pin = GPIO_PIN_4;             //配置GPIO口引脚:PA4
  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;  //下降沿触发检测的外部中断模式
  GPIO_InitStruct.Pull = GPIO_NOPULL;           //内部电阻既不拉高也不拉低
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);       //根据上述内容,初始化GPIOA引脚

  /*Configure GPIO pins : PA5 PA6 */            
  GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;  //配置GPIO口引脚:PA5 PA6
  GPIO_InitStruct.Mode = GPIO_
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值