自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 STM32蓝牙插座项目(hal)

当在手机蓝牙助手上发送“开启闸门”时,继电器开启,相应的,继电器上的绿色灯亮起。同理,在手机蓝牙助手上发送“关闭闸门”时,继电器关闭,绿灯灭掉。这样我们就实现了初步的手机通过蓝牙控制单片机的过程。项目要求,能够在手机上发送开启闸门时,继电器相应的打开,在手机上发送关闭闸门时,继电器相应关闭,且在开始时,发送“hello,帅气的雷先生”我们这里的蓝牙使用到了单片机上的串口2,所以我们要初始化串口2。这是一个非常简单的蓝牙小项目。串口2的中断服务函数。

2024-10-23 16:28:13 312

原创 STM32中IWDG、WWDG配置(HAL)

计数器从预设值开始递减,如果在计数器递减到0之前没有及时通过软件重载(喂狗)来重置计数器的值,那么当计数器递减至0时,IWDG将产生一个系统复位信号,使系统重新启动。IWDG是一个递减的计数器,其时钟通常由独立的RC振荡器提供,使得IWDG能够在待机和停止模式下运行,即使主系统时钟停止,IWDG仍然能够正常工作。计数器从设定的值开始递减,如果在预设的超时时间内未被及时“喂狗”(刷新),即未将重装载寄存器的值写入计数器以重置其值,系统将自动触发复位,确保系统能够从异常状态中恢复。第一行代码是定义的一个句柄。

2024-10-16 20:01:16 1011

原创 STM32智能垃圾桶

项目要求:能够在人靠近的时候垃圾桶桶盖能够自动打开,在人走开后能够自动关闭,当人一直在垃圾桶旁边时能够保持常开,当按键按下时垃圾桶也打开,当振动器震动时垃圾桶也能够打开,垃圾桶打开时led灯闪烁一下。用到的元件:超声波传感器、舵机、led、振动传感器、按键。这样就可以实现三个条件触发,从而打开垃圾桶。1、超声波传感器模块。(1)超声波传感触发。(2)震动传感器触发。

2024-10-16 15:32:05 694

原创 stm32驱动HCSR04(HAL)

因为我们需要读取超声波传感器发出信号到收到信号的时间,所以需要在收到信号的时候停止定时器方便读取,同时也需要在发出信号的一瞬间就打开定时器,所以需要写出两个函数便于我们能够快速的开启和关闭定时器。TRIG_RX引脚就是给传感器一个信号,使其能够发出一个波,可以理解为传感器上的其中一个“大眼睛”发出信号。ECHO_TX引脚就是传感器发出的波遇到物体返回的接收引脚,是传感器上另一个“大眼睛”的功能。这里我们用到的是PB6和PB7,初始化这两个引脚即可,一个是输出引脚,一个是输入引脚。1、定时器初始化函数。

2024-10-15 18:21:38 722

原创 STM32实现脉冲检测(HAL)

这个函数在初始化函数里配置。这个脉冲计数需要检测到65535个脉冲才能清零,代码成功显示了按键按下的脉冲次数。将定时器对应对通道输入的低电平脉冲作为定时器的时钟,并通过串口输出脉冲的次数。配置外部始终模式1,触发选择,上升沿触发,不分频,不滤波。这里的配置不多说了,之前的文章里有过介绍,可以去翻翻看。函数:HAL_TIM_IC_MspInit();初始化GPIO、NVIC、CLOCK。这里我们自己写一个获取值的函数。4、使能捕获,并启动计数器。1、时基工作参数配置。3、定时器从模式配置。

2024-10-11 19:11:10 507

原创 STM32测量按键按下时长

检测到下降沿后,就开始计时,直到检测到上升沿后再停止计时,在这个过程中,我们设置的自动重装载值ARR最大为65536,所以在按键按下去后,中间可能会有N多次的溢出时间,那么我们最后可以使用这样一个计算公式,time = arr_cnt*65536+ccr_cnt,arr_cnt是自动重装载次数,ccr_cnt是寄存器中的计数,根据计算公式,就可以得到按键从捕获到下降沿到上升沿的时间了。第一行:如果succeed_flag=0,判断falling_flag是否等于0,若等于,则在串口中显示“捕获到下降沿”

2024-10-11 16:00:05 1073

原创 STM32中实现下降沿捕获(HAL库)

主要配置其中的instance init autorelaodpreload countermode period prescaler。这个函数里需要一个公共服务函数HAL_TIM_IRQHandler();ps:4-5两个步骤都是直接在初始化函数里进行配置的。PS:有些注释是复制过来的,并不表明该行代码的注释。主要配置:捕获边沿/映射/分频/滤波。这一步直接在初始化函数里进行配置。

2024-10-10 19:23:10 818

原创 STM32f103c8t6中PWM的配置

PWM波形(Pulse Width Modulation,脉冲宽度调制波形)是一种占空比可变的脉冲波形。这种调制方式 通过改变脉冲的宽度来控制电路中的信号强度和频率。具体来说,PWM波形中的高电平持续时间和低电平持 续时间可以根据需要进行调整,从而实现对模拟信号电平的数字编码。

2024-10-09 13:36:29 1576

原创 STM32f103c8t6通用定时器的配置

CounterMode,这里配置的是向上计数模式,还有别的计数模式。在初始化之前需要定义一个全局的结构体,因为后面别的函数也会用到;AutoReloadPreload,这里配置是否进行自动重装载。因为没有别的中断,抢占优先级和响应优先级可以随便设置。单独的函数,没有参数,注意里面需要一个公共服务函数。Period,这个就是设置的传进去的arr参数。注意有参数,判断一下是否使用tim2。在使用这个函数之前需要判断一。ARR:自动重装载值。这个函数是一个单独的函数。注意这个函数里面是有。其中init主要配置。

2024-10-07 20:57:40 678 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除