
上个帖子实现了单片机与PC端的通讯,现在使用该功能完成一个人体监测的小项目; 一:毫米波雷达知识分享: CEM5826-M11 是一款高灵敏度 24GHz毫米波人体微动存在检测雷达模块。区别于传统雷达通过检测人体移动的大幅度动作或肢体动作来判断人体存在,本模块主要特点是在传统人体感应雷达的功能基础上,同时具备检测积累人体微动幅度的运动,来判断人体的存在的功能。因此相比传统多普勒雷达来说,具备一定范围内的存在检测,准确率更高。不易漏报。 2.系统功能及工作原理简述 本系统利用电磁波多普勒效应对运动目标进行探测。通过发射天线发射出24GHz电磁波信号,该电磁波信号遇到运动物体时会反射回带有频偏的 24GHz电磁波信号,此频偏即为多普勒频偏,反射回的信号被接收天线接收,通过对多普勒频偏及中频IQ 相位的采集计算分析可以较为灵敏地探测出附近的运动物体以及运动物体是靠近还是远离。当探测到有运动物体靠近时VO输出高电平,无运动物体靠近时 VO 输出低电平。 3:模块的系统框架 ![]() 4:模块接口信息如下所示: ![]() 5:模块调试时候的几个指令: th=**:检测闽值,默认值为 200。 vmin=**:设置最小检测速度,单位为km/h,默认值为0。 vmax=**:设置最大检测速度,单位为km/h,默认值为100 led_on_100ms=**:设置 led 电平维持时间,时间为 xx*0.1s,默认值为 10。 led_iflag=xx:设置led 指示模式,led_iflag默认值为0。当led_ifag=0时,高电平指示检测到目标,低电平指示未检测到目标。当led iflag=1时,高电平指示未检测到目标,低电平指示检测到目标。 save:将当前参数存储到flash中,确保参数掉电不丢失 get_al: 获取当前参数值。 VER:获取软件版本号。 基本的模块资料如上所示,下面使用cube MX 生成底层驱动函数; 二:STM32 cube MX 软件配置: ![]() ![]() 这里我们需要注意下,使用串口接收毫米波雷达数据时候,由于使用串口自动发送数据的模式,该款模块输出的速度太快,我们需要将串口6的优先级设置的高些,放置被其他模块所打断。 三:软件代码如下: 3.1 编写空闲中断处理函数,该函数中 在串口中断中被调用。
串口中断处理函数
串口6接收到一组完整的数据后,将数据发送到串口1的PC端
![]() 后记:这里重申一下中断的知识: STM32的串口中断是指当串口收到数据时,cpu会产生串口中断信号信息,通知单片机内部的中断服务函数去处理数据。此时,在串口中断服务程序中,我们可以将数据先放到串口的接收串口缓冲区内,当把所有的数据接收完整时,再去调用串口处理函数。 通俗的说:串口中断服务函数需要使用中断接收功能实现。当有新的数据到达串口时,单片机触发中断请求,从而程序运行到中断服务程序里面。中断服务程序在处理完接收到的数据后,可以根据当时的要求进行处理。 采用中断的方式优点是:提高单片机的运行效率,减少了资源浪费。 总体来说:使用Stm32 cubeMX 软件来开发项目还是很方便的,欢迎大家一起交流学习。 |
【粉丝福利】2025 ST中文论坛年中粉丝福利活动
《年中视频学习心得》+学Demo视频,提升产品技能
《年中视频学习心得》+ 慕尼黑电子展demo方案视频学习
《年中视频学习心得》+ 2025 STM32峰会demo
【招募体验官】ST云实验室先锋计划:解锁远程调试新体验
ST云实验室先锋- 体验自动化(P-NUCLEO-IOM101 - IO-Link 主从设备测试)
【技术之约】2025 STM32峰会邀您共赴技术盛宴!
【板卡申请】超低功耗“芯”神奇, 带你玩转NUCLEO-U385RG-Q
【板卡申请】入门 “芯”篇章, 速写新品STM32C071/92申请计划
【板卡评测】智能存在检测:P-NUCLEO-53L8A1 – 8x8多区域飞行时间传感器