单片机
文章平均质量分 65
FPGA之旅
这个作者很懒,什么都没留下…
展开
-
ESP32-IDF使用I2S驱动MAX98375--解析WAV文件
本篇文章将介绍如何使用ESP32S3通过I2S发送WAV音频数据,驱动MAX98375A进行音频的播放。是EVE_V2项目开发的一部分工作。芯片特性如下,可以在芯片手册上找到。单电源工作(2.5V至5.5V)3.2W输出功率:4Ω,5V2.4mA静态电流92%效率(RL = 8Ω,POUT = 1W)25µVRMS输出噪声(AV = 15dB)1kHz时,0.015% THD+N无需MCLK8kHz至96kHz采样速率支持左声道、右声道以及(左声道/2 + 右声道/2)输出。原创 2023-09-22 14:31:43 · 1579 阅读 · 1 评论 -
编码器SIQ-02FVS3驱动
此编码器可以是功能非常强大,可以检测左右转动,和按键按下,所以说这一个编码器可以抵三个按键,而且体积非常小,使用起来比三个按键要高大尚,而且驱动也简单。唯一不足的点就是价格有点小贵6-8元才能买一个。原创 2023-03-05 10:31:03 · 1507 阅读 · 1 评论 -
STM32-遥感数据处理
在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是0-4096范围内的,实际上,下边界不为0,上边界也不为4096。为了方便后续的处理,本文将采集到的遥感数据归一到0-100范围内。原创 2022-08-02 22:16:06 · 521 阅读 · 0 评论 -
基于STM32F1的开源小项目
在前面几篇文章中,将这个项目的各个部分都做了简单的介绍,今天在这里作为一个完整版分享给大家使用。喜欢的话,可以自行获取。演示视频观看过演示视频的话,这是一个很好的课设,或者作为初学者入门实践一个首选。本项目没有使用RTOS操作系统,是一个裸机程序,使用的是一个前后台的框架。中断回调函数用来查询各个状态是否发生并做好标记,然后在main函数中进行相应的处理。在进入到main函数之后,是对各个硬件部分进行初始化,并进行开机动画的加载,这也是一个标准的流程。然后就是根据当前的模式进入到不同的if语句中执行相应原创 2022-06-10 08:41:54 · 1897 阅读 · 0 评论 -
STM32借助A*算法完成贪吃蛇
借助在前面stm32完成的贪吃蛇小游戏,现在借助A算法,来完成贪吃蛇的一个自动寻找食物的过程,从而解放我们的双手。终于从完成功能代码,到了算法的部分啦。经过这里例子,可以很好的感受将我们学习到的算法应用到实际的项目当中去。例如这里的寻路算法可以利用深度优先和广度优先搜索算法来完成,都是寻路入门级的算法。在A算法中,可以感受到排序算法的用处,以及数据结构的魅力。需要的可以关注哦欢迎关注微信公众号 FPGA之旅 哦这里我是先在软件上实现,然后将其移植到stm32当中去。算法的详细过程就不细细介绍了,主要来说一原创 2022-06-05 13:05:21 · 2799 阅读 · 0 评论 -
STM32接收红外遥控数据
最近在做项目的过程中,由于使用的是核心板,没有按键,尝试通过串口进行数据发送,进行控制,但是太麻烦了。于是想到了通过红外遥控进行控制。经济又实惠,还可以隔空远程操作,且只有一个数据线,YYDS。欢迎关注 微信公众号 FPGA之旅 获取更多,所用资料将会第一时间发布在上面。不做过多的理论知识的简介,主要是为了教大家怎么使用。传输过程如下依次按照对应的时间来检测就可以。本次设计通过外部IO中断来进行红外数据的读取,低电平触发(空闲为高电平)。GPIO初始化开启中断中断控制线可以根据自己的Pin来确原创 2022-06-01 21:18:25 · 3350 阅读 · 0 评论 -
STM32F1移植RT_Thread简明教程
一. 简介最近开始学习RTOS了,也是第一次接触RTOS,本人以国内的RT-Thread作为学习的一款RTOS,支持国产嘛。在搭建环境的时候,遇到了许多问题,也是参考了许多博客,但是与官网上的步骤都大同小异,给了像我们这样的小白很大的打击。接下以以STM32F1移植极简版硬实时内核Nano(基于keil5),给大家介绍如何快速的搭建环境。欢迎关注微信公众号 FPGA之旅 获取更多二. RT-Thread的安装这里的安装方法有两种,和之前需要使用stm32f1系列的单片机一样,需要下载安装pac原创 2022-05-28 16:15:39 · 1405 阅读 · 0 评论 -
PID算法模拟--基于Qt
一. 简介PID算法在运动控制系统中的应用非常广泛,例如两轮平衡车中,平衡的原理就是使用的PID算法,这也是入门学习的首选项目。PID算法中最重要的就是PID三个参数的调整,也是PID算法的核心之一。但是在硬件中,调整参数后的效果,不能很直观的展现在我们面前。所以这里使用Qt来进行可视化设计,清晰直观的了解每个参数的作用。完整代码也是放在微信公众号 FPGA之旅 中回复 Qt模拟PID获取下载链接。二 . Demo简介通过获取界面上的PID参数值和预算温度值,实现PID的初始化通过两个定时原创 2022-05-21 16:55:42 · 1837 阅读 · 1 评论 -
STM32实现2048小游戏
一. 前言在我们的DIY套件上,终于集成了第三个小游戏----2048。怎么感觉做成了个游戏机呢(#.#)。这款游戏也是非常流行的,玩起来也是非常的轻松,要想过关的话,还是需要一点的技巧。二. 游戏规则简介游戏地图为 4 * 4。每次移动所以方块都会向指定的方向移动,同时会在地图上随机生成值为2或者4的方块。在移动的过程中,如果相邻的两个方块的值一样,那么它们就会融合成一个值为它们之合的方块,每一次移动,只能进行一次融合。如果方块中的值为2048,则游戏胜利。如果整个地图都被方块添满了,则原创 2022-05-11 17:58:34 · 2612 阅读 · 0 评论 -
STM32实现俄罗斯方块
一.前言这个俄罗斯方块同样也是DIY项目中的一个,和上一篇stm32贪吃蛇实现的过程一样,只需要一个.h和一个.c文件即可,与平台无关,根据俄罗斯方块中的数据,自行在目标显示设备上进行显示即可,非常方便。这个俄罗斯方块的实现过程是基于我在FPGA实现俄罗斯方块设计思想来进行的。直接点,就是将Verilog代码重新用C语言写了一遍。(#.#)欢迎━(`∀´)ノ亻!关注微信公众号 FPGA之旅 回复 stm32俄罗斯方块 获取对应的文件二. 函数调用介绍函数的使用也是异常的简单,只需要按顺序调用原创 2022-04-25 17:14:31 · 3429 阅读 · 1 评论 -
STM32贪吃蛇实现
一. 前言最近在弄一个桌面小摆件的DIY,在里面弄了一个贪吃蛇的小游戏,在stm32f103平台上实现,通过tft模块进行显示。不加显示部分的话,贪吃蛇游戏与平台无关,可以轻松添加到自己其他平台项目的代码中,也是便于学习,其中蛇数据的存储使用到了链表结构,下面来让我其做一个简单的介绍吧。C代码可以关注微信公众号 FPGA之旅 回复 stm32贪吃蛇获取(不是工程文件,需要自己根据贪吃蛇的数据进行绘制显示)二. 游戏整体介绍先来看看下图,如果蛇移动的速度为1s的话,就每隔1s调用一下这个函数即可(先原创 2022-04-23 22:27:07 · 6589 阅读 · 1 评论 -
STM32驱动ST7789V2 tft屏幕
一 . 简介本次教程使用的是1.54寸240*240像素的tft屏幕,其接口协议为SPI协议。在使用的过程中仅需要四根数据即可驱动点亮屏幕。然后硬件使用的是STM32F103C8T6核心板,用的是SPI2。一般购买屏幕的话它们会提供对应的例程,直接拿过来修改即可。欢迎━(`∀´)ノ亻!关注微信公众号 FPGA之旅 获取更多。二. 屏幕的使用第一步肯定是引脚初始化,接口是SPI接口,所以也需要对SPI进行初始化(软件模拟SPI时序的话就不需要,硬件SPI需要),如果需要用到DMA进行加速的话,也需要对原创 2022-04-19 08:31:12 · 8804 阅读 · 0 评论 -
PCF8591详解
一. PCF8591模块介绍IIC接口,支持四路模拟输入,一路模拟输出,集成光敏电阻和热敏电阻以及一路电压输入(蓝色定位器调节输入)。模块共有三个短路帽,分别控制光敏电阻和热敏电阻以及一路电压接入。也就是说当三个短路帽都接入的时候,模块只能接受一路模拟输入了,其他三路被占用了。8-bit 逐次逼近A/D转换器。转换结果为0-255。二. PCF8591模块使用读取模拟量的IIC过成为发送器件地址 —> 发送控制指令 —> 停止 —>f发送器件地址+1 —>读取数原创 2022-03-11 14:05:54 · 7575 阅读 · 1 评论 -
STM32平衡车
前言本次分享一个基于STM32平衡车的项目,在淘宝有卖,也是最近几天本着学习PID算法,买的一个成品。硬件配置采用stm32F103C8T6核心板,搭配MPU6050陀螺仪和两个电机带有AB相的编码,通过这就可以组建一台最小的STM32平衡车了。当然为了可以方便控制以及显示对应的数据,方便调试以及理解MPU6050的相关数据,往往会搭配一个OLED和蓝牙模块。****代码部分本次介绍的是淘宝卖家提供的源码,里面包含了所有模块,眨眼一看还是比较复杂的,但是去除扩展模块与平衡车关联性不大原创 2022-02-03 12:30:57 · 2485 阅读 · 1 评论 -
C51单片机实现 贪吃蛇
一. 实验所需模块4×4矩阵键盘,8×8点阵,定时器0二. 模块简介4×4矩阵键盘矩阵键盘采用行和列扫描的方式进行判断那个按键被按下了先进行扫描或先进行列扫描都可以行扫描的时候,先将行所在的引脚置一,列所在的引脚置0,然后判断行所在引脚的电平的值,随后进行列扫描8×8点阵8×8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。当某一行置1,某一列置0时,对应的二极管就会点亮。与动态数码类似,利用视觉残留效果,即可实现动态依次点亮的效果定时器原创 2020-06-04 09:12:31 · 9063 阅读 · 23 评论