草庐IT

STM32+FPGA

全部标签

毕设分享 stm32智能语音垃圾分类系统(项目开源)

文章目录1简介2绪论2.1课题背景与目的3系统设计3.1系统架构3.2硬件部分3.2.1传感器模块3.2.2语音模块3.2.3电机及其驱动模块3.2.4稳压模块3.3软件部分3.3.1自动翻盖子程序设计3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目毕业设计stm32智能语音垃圾分类系统(项目开源)大家可用于课程设计或毕业设计🧿项目分享:见文末!2绪论2.1课题背景与目的学长设计的系统主要使用stm32单片机为基础设计并开发一个智能垃圾桶系统。该系统实现智能开盖,垃圾装满语音报警的功能。设计主要以单片机为控制中心,通过红外传感器检测探测范围

STM32以太网(ETH) 学习笔记1 —— ETH接口功能说明

目 录以太网接口功能说明:SMI、MI和RMII1.站管理接口:SMISMI帧格式SMI写操作SMI读操作SMI时钟选择2.介质独立接口:MIIMII时钟源3.精简介质独立接口:RMIIRMII时钟源以太网接口功能说明:SMI、MI和RMII        以太网外设包括带专用DMA控制器的MAC802.3(介质访问控制)。它支持介质独立接口(MII)和简化介质独立接口(RMII),并通过SYSCFG_PMC寄存器的bit23在两个接口间进行切换,以太网控制器处于复位模式或使能时钟前,应用程序必须设置MII/RMII模式。        在进行数据发送时,首先将数据由系统存储器以DMA的方式送

esp32 cam不使用官方示例完成视频内网穿透

刚才给大家讲解了esp32cam使用arduinoide官方示例内网穿透的方法,因目前免费的内网穿透软件无法完成公网ip的两个端口映射,因此作者去学习了另一个不使用官方示例也可以内网穿穿透的方法。在此先介绍b站王铭东老师,我是在这位老师的基础上学习的,还有csdn上的这位老师,我仅学习借鉴代码思路部分,这两位老师都很厉害,大家可以看看相关博客和视频。接下来便给大家讲解thonny实现内网穿透,目前有两种方法,第一种,使用thonny在esp32cam上烧录代码通过socket通信udp协议,将视频流传输到pycharm上接收,使用flask框架做web,再使用cpolar或花生壳完成内网穿透。

FPGA静态时序分析与约束(三)、读懂vivado时序报告

系列文章目录FPGA静态时序分析与约束(一)、理解亚稳态FPGA静态时序分析与约束(二)、时序分析文章目录系列文章目录前言一、时序分析回顾二、打开vivado任意工程2.1工程布局路由成功后,点击vivado左侧**IMPLEMENTATION**->再点击**ReportTimingSummary**2.2在弹出的界面下面的命令栏,点击**Timing**2.3点击方框1里面的intra-ClockPaths三、分析静态时序路径3.1分析源时钟路径3.2分析数据路径3.3分析目的时钟路径四、计算建立时间余量前言前两篇文章介绍了什么是亚稳态?以及静态时序分析,但那些终究还是理论,那么在实际工程

STM32第六节:GPIO输出——使用固件库点亮LED

前言    从这节课开始呢我们就正式进入了固件库编程,我们学习了GPIO口的相关知识,那么我们的第一个程序就写GPIO输出——使用固件库点亮LED吧。下面就让我们一起来学习,创作不易,点个三连支持一下吧!STM32第六节:GPIO输出——使用固件库点亮LEDLED原理    首先,我们还是先熟悉一下LED的原理图,我们所需要操作的io口为PB(0,1,5),即GPIOB寄存器上的操作。通过控制这三个端口的高低电平,来控制灯的亮灭。        对于F103的固件库编程拷贝模板    首先我们先拷贝一份上节课的工程模板,然后命名为本节课的内容(最好是英文,要不然可能会报错)。这里需要模板的可以

007-可调脉冲数触发之FPGA实现(Zynq也可驱动,带启动停止及完成中断输出)

文章目录前言一、设计思路二、代码及仿真1.资源消耗2.具体代码3.仿真波形总结前言此代码是在做显微镜高速聚焦系统中自己写的步进电机电机驱动源码,为了达到最快的驱动速度,因此选用脉冲触发方式进行驱动。在电机驱动的过程中往往需要对脉冲进行使能,启动,配置好输出N个脉冲,设置电机转动的方向,发送脉冲的过程中发送急停信号,停止当前的脉冲输出以及脉冲输出完后反馈回来中断触发信号。经过实测代码能够满足步进电机的驱动需求,且能够在驱动完毕后反馈中断信号提示脉冲信号已经输出完毕。此代码适用的地方主要在需要脉冲触发的应用场景,最终输出两个信号出去(输出脉冲和电机方向电平),若有需要可以把脉冲触发跟运动坐标系建立

STM32基于寄存器编程

在51中让一个引脚输出高低电平只需要一个步骤,而在32中至少需要三个步骤。开启对应GPIO的时钟配置对应IO口设置IO口本文将一步步进阶的讲解,四种寄存器编程的方法。使用地址赋值进行配置使用ST的宏进行配置只控制需要的位(位运算)与(&),或(|)左移>使用ST的宏进行位运算使用地址赋值进行配置 第一步:启动对应IO口时钟,这里我们以PA0,PA1,PA8为例。 从数据手册上可以看出,GPIOA在APB2时间线上,所以启动对应IO口时钟线,就是启动APB2。如何打开寄存器时钟?        这里以APB2外设使能寄存器(RCC_APB2ENR) 为例。启动寄存器本质上就是,找到寄存器的地址后

一、蓝桥杯嵌入式STM32G431RBT6_点亮LED

文章目录前言1.CubeMx配置1.1时钟源的选择1.2时钟树的配置1.3配置引脚1.4文件配置1.5工程配置2.代码编写2.1代码编写步骤2.2LED测试代码编写3.代码编写方法二前言下面对STM32G431进行模块化学习,本文先学习CubeMX的配置以及点灯操作。1.CubeMx配置1.1时钟源的选择1.2时钟树的配置HCLK一般取80(使用ADC的情况下)1.3配置引脚在产品手册中可以找到STM32G431的LED原理图,从下图可以看出,8颗LED灯通过74HC573驱动,LED灯采用低电平的方式点亮,控制引脚连PD2引脚。我们可以在PD2高电平的基础上,控制GPIOPC8~PC15的高

stm32的IIC协议以及IIC通信驱动OLED屏幕

    最近,一直在搞stm32开发板,今天涉及到了OLED屏幕与IIC协议,记录一下学习过程。    I2C总线是一种总线标准,由数据线SDA和时钟线SCL构成通信线路,既可用于发送数据,也可接收数据,是一种半双工通信协议。总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。        主机启动总线,并产生时钟用于传送数据,此时任何接收数据的器件均被认为是从机。I2C器件一般采用开漏结构与总线相连,所以I2C_SCL和I2C_SDA均需接上拉电阻,也正因此,当总线空闲时,这两条线路都处于高电平状态,当连到总线上的任一器件输出低电平,都将使总线拉低。     关于具体的读写操

在ubuntu上使用vscode+gcc-arm-none-eabi+openocd工具开发STM32

文章目录所需工具安装调试搭建过程中遇到的问题写在前面  老大上周让我用vscode开发STM32,我爽快的答应了,心想大学四年装了这么多环境了这不简简单单,更何况vscode这两年还用过,然而现实总是令人不快的——我竟然花了差不多两周时间在这上面,并且不知道花费了多少流量😭😭😭。这玩意就给了所需要的主要工具,形象一点就如标题,问其他人他们也搞不定。因此,大家有空还是多涉猎一些开发环境,这玩意以前有兄弟跟我提过,但是我觉得没意义,所以没用过😅😅😅。所需工具代码编写idevscode调试连接工具openocd交叉编译工具链gcc-arm-none-eabi调试工具gdb-multiarch工程管理