草庐IT

梦飞openmv--stm32单片机跑AI

1背景前面两篇文章《openmv底层算法剖析---梦飞openmv前传》以及《梦飞openmvpy-AI机器视觉_自主开发openmv底层固件和硬件》充分展示了梦飞openmv的开发历程,也充分证实了单片机做图像识别算法的可行性。引用openmv官方的话术:OpenMV适合做什么?---DIY相关的项目制作,比如追踪小球的车,云台,或者解魔方的机器人。---对成本要求很高的嵌入式工业方案,比如流水线物品的分拣。OpenMV不适合做什么?---复杂的算法:比如OCR识别,车牌识别,猫狗分类,深度学习之类的。那么单片机到底能否做AI?小梦给出了一个供大家参考的分析和案例,我认为是完全可以做AI的,

stm32 freeRTOS lwip TCP快速发送,内存泄露问题

现象1:发送缓慢,tcp_write之后要等200多ms才能过发送出去,而且粘包严重。解决办法tcp_write之后,立马调用tcp_output,tcp就会立马发送。tcp_writetcp_output现象2:持续快速发送和接受TCP数据出现断言pbufsonqueue=>atleastonequeuenon-emptytcp_receive:validqueuelength而且出现TCP断连,死机情况。其实就是一句话主程序和以太网中断程序中对PCB->unsent之类的处理出现了问题,tcp_write不是没有临界保护,导致中断和主程序直接出现了共同操作((pcb)->snd_buf)(

STM32使用定时器实现微秒(us)级延时

STM32使用定时器实现微秒(us)级延时引言前期准备介绍系统时钟定时器时钟项目项目介绍STM32CubeMX程序引言目前开发STM32普遍使用HAL库,但HAL库封装的延时函数目前仅支持ms级别的延时,日常很多情况下会用到us延时,特别是一些传感器的数据读取过程,对时序要求比较严格,us延时必不可少,因此我们今天来介绍STM32如何使用定时器实现微秒(us)级延时。前期准备Keil5STM32CubeMXSTM32F407MCU介绍系统时钟可通过多个预分频器配置AHB频率、高速APB(APB2)和低速APB(APB1)。AHB域的最大频率为168MHz。高速APB2域的最大允许频率为84MH

基于单片机STM32的智能衣柜设计(可以写进毕设与简历的项目)

项目介绍:从智能家居服务生活的理念出发,针对目前传统衣柜在潮湿环境下不易贮存衣物的缺点,设计一款智能语音衣柜;如下图所示为基于stm32的智能衣柜设计,这个项目中有紫外线杀菌+除湿风扇+加温+语音助手+wifi模块+人体感应模块等,属于一个综合性项目,如果想从事嵌入式开发,学点东西这是很值得参考的一个项目,里面设计的内容和知识点都比较多了。实现的功能描述:1.每30s自动打开紫外线杀菌,温湿度达到阈值自动加温除湿;2.按键包括:设置加设置减设置页面切换设置点切换3.屏幕显示年月日时分秒星期温湿度紫外线倒计时4.温湿度传感器模块为32和语音模块提供数据,语音可播报当前温湿度和穿衣推荐5.内置还有

【STM32】控制LED灯和蜂鸣器的按键实验

🐱作者:一只大喵咪1201🐱专栏:《STM32学习》🔥格言:你只管努力,剩下的交给时间!按键实验描述用到的相关寄存器GPIOIDRODRRCC确定位置LED灯蜂鸣器按键程序及分析不支持连续按视频展示支持连续按视频展示总结描述本喵这次介绍的实验是按键实验,同样使用STM32F103ZE型号的芯片,在开发板上有4个按键,实验目的是每按一个按键就会让LED灯或者是蜂鸣器的工作状态发生反转,下面本喵来详细介绍。用到的相关寄存器GPIOIO口在单片机的使用中是最多的,此次实验用到了LED灯,蜂鸣器,以及3个按键,所以也使用到了IO口。IDR叫做端口数据输入寄存器(GPIOX_IDR),读取它的信息就能获

毕业设计 stm32的人体健康状态检测系统

文章目录0前言1硬件电路2软件设计3跌倒检测算法4软件部分MLX90614红外温度传感器5关键代码6最后0前言🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩毕业设计stm32的人体健康状态检测系统(项目开源)🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:4分创新点:4分主要功能基于stm32的人体状态检测1.利用max30100传感器测心率、血氧2.利用体温传感器测量体温

STM32 HAL库 STM32CubeMx -- 外部中断

文章目录一、STM32中断概述二、NVIC简介NVIC寄存器简介中断优先级NVIC中断配置固件库中断编程三、外部中断(EXTI)EXTI简介EXTI功能框图中断/事件线四、STM32CubeMx配置五、代码分析附录一、STM32中断概述中断,是指处理机处理程序运行中出现的紧急事件的整个过程。程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断。当处理机接受中断时,只需暂停一个或几个周期而不执行处理程序的中断,称为简单中断,中断又可分为屏蔽中断和非屏蔽中断两

步进电机简单使用:STM32 PWM输出固定数目的脉冲数(基于CubeMX)

目录1步进电机驱动原理2程序快速配置3注意事项1步进电机驱动原理使用步进电机之前,我们需要了解步距角的概念:步进电机接收到一个脉冲转动的角度,步进电机步距角通常为1.8°,即步进电机接收到一个脉冲转动1.8°,则若步进电机接收到360°/1.8°=200个脉冲,步进电机就能转动一圈步进电机通过驱动器控制,驱动器如下图所示(都比较相似)驱动器侧面有拨码开关,根据图中1、2部分可以修改驱动器细分数和电流大小细分数:类似于将步进电机的分辨率扩大,若将SW1设置为ON、SW2设置为OFF、SW3设置为OFF、SW4设置为OFF,即将驱动器细分数设置为2后,此时步进电机的分辨率扩大为200*2=400,

【STM32】详解PWM的概念和原理

PWM的概念和原理一、PWM是什么?二、如何实现?三、STM32中的PWM四、使用库函数配置PWM将LED0设置为呼吸灯一、PWM是什么?PWM(Pulsewidthmodulation)脉冲宽度调制。PWM是通过编程控制输出方波的频率和占空比(高低电平的比例)。应用:测量,通信,功率控制与变换等各种领域(呼吸灯、电机)。二、如何实现?PWM是由定时器驱动,定时器的周期就是PWM的周期,为了控制高低电平的比例,会在定时器的基础上加上一个比较寄存器,同时需要和IO口结合输出PWM波。三、STM32中的PWMSTM32中PWM属于定时器的功能,通过直接配置定时器就可以使用PWM,除了定时器的基本配

stm32使用hal库中断控制串口通信

文章目录实验任务实验材料硬件软件任务一创建项目1、配置USART12、配置GPIO3、项目管理代码编写使用的hal库apiHAL_UART_Receive_ITHAL_UART_Transmit_ITHAL_GPIO_WritePinHAL_Delay(uintms)代码思路main函数代码实验现象任务二代码思路相关代码实验现象注意事项参考资料实验任务1)当stm32接收到字符“t”时,持续发送“hellowindows!”;当接收到字符“s”时,停止发送“hellowindows!”(提示:采用一个全局标量做信号灯);2)当stm32接收到字符“stopstm32!”时,停止持续发送“hel