自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用VOFA+工具用于调试PID算法

本文介绍使用VOFA+工具用于调试PID算法(重点是实现使用此工具用于调试,而非介绍算法,我也不确定以下算法的正确性,大家参考即可)。一、首先验证发的数据正确性。当我配置发送“0”和“0”数据时,上位机收到数据如图。00 00 80 7F为帧尾。当我配置发送“1”和“2”数据时,上位机收到数据如图。00 00 80 7F为帧尾。如果收到数据不是以上情况,则说明串口发送数据的格式不正确。定时器中断中调用,控制算法和发送函数均在一个函数中实现。//定时器中,1Ms调用一次,固定

2021-11-23 21:58:38 15993 16

原创 C8051F4x0仿真软件的安装

接上一节,keil开发环境安装完成后,接着在keil中连接仿真器进行仿真操纵。1、建立一个编译无误的keil工程。#include "C8051F410.h"#include "main.h"sbit LED1 = P1^0;sbit KEY1 = P2^0; long int numCount;void DelayMs(int iChat){ int i, j; ...

2021-06-06 10:06:35 1328

原创 IIC操作读写Eeprom程序(模拟IO操作AT24C02)

本文介绍调试Eeprom,需使用IIC协议。所以阅读本文的前提是已经了解IIC协议。一、Eeprom介绍:Eeprom,也就是Rom,简单理解为数据存储器件,数据在掉电时不会丢失。达到保存参数、记录等目的。此次我所AT24C02芯片:容量大小2048Bit,也就是256个Byte;地址从0x00~0xFF;可支持100万次写入;24C02自己把数据从缓存写入到内存中最大不超过5Ms。二、原理图绘制介绍:A0-A2,共3个脚,对应IIC器件地址的3Bit。通过上、下拉可组合出8种状态,

2021-03-05 14:40:37 3784

原创 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

串口软件Vofa+,超好用。可用于直观化显示数据动态

2021-03-02 16:37:26 38207 22

原创 嵌入式平台C语言实现二阶滤波器

最近想从嵌入式平台上用C语言实现二阶滤波器,于是先从Matlab上验证二阶滤波器公式,再编写C语言来验证。算法移植(实现过程)①先用Matlab自带公式的二阶滤波器实现;②运用公式Matlab实现;③移植到嵌入式平台上实现(C语言实现)。以下在Matlab软件上先进行了第①步和第②步的验证。生成了1个200Hz和2000Hz叠加的正弦波,然后通过1000Hz的低通滤波器,这样就滤掉了2000Hz的信号,保留200Hz的信号。因滤波器过后会有相位差(延时),所以下图“蓝色信号”,较

2020-12-10 15:01:58 3961

原创 Matlab中FFT运算加窗函数的验证

在上一篇博客中,介绍了MATLAB中的IFFT和虚部取反后的FFT的验证,结果表明是一致的。https://blog.csdn.net/weixin_42316458/article/details/80462145#comments_13197383有人提问:“做了逆变换之后为啥头部和尾部的信号和原始信号不一致了啊?能否通过某种方式恢复呢”通过观察图形可以看出,在“IFFT时域”和“虚部取反做FFT时域”,结果是一致的。同时看出,在头部和尾部与“原信号”均有差异。加窗函数的目的在“

2020-09-16 15:07:19 15489 7

转载 多节电池串、并联转换电路设计

在做一个电源电路设计,最初目的是想放电时使用高电压,充电时使用低压。(充电时不用拆电池,使用手机充电器即可进行充电)。于是找到了以下思路在充电时使之并联,放电时使之串联。我具体的应用是:3节18650锂电池,使用一个1开4联开关。充电时把开关拨到上面使用并联,用TP4056降压充电芯片,使用一般的手机充电器即可充电。充满电压为4.2V。放电时把开关拨到下面使用串联,这样我放电电压能有3.7*4=11.1V。不使用时开关拨到中间,3节电池全部断开。不会漏电。注意开关一定要同时开..

2020-08-03 14:06:47 4573

原创 音频重采样(线性插值)在Matlab中验证

重采样介绍音频的重采样一般可能用于DSP等数字信号处理领域,比如将原本的48k采样率的原信号,通过重采样(降采样)改为44.1k。即为将每1秒的48000个点的离散信号,改为44100个点的离散信号。如下图,蓝色“□”表示原采样率时,在0~10时间里面输出11个点。而如果在需要降低采样率时,如红色“○”,需要在0~6,总共7个点内,需要减少输出点数,实际只需输出6个点。所以需要步长大于1的降采样。同理升采样,如橙色“*”,在0~4,总共5个点内,需要增加输出点数,实际需要输出6个点。所以需要

2020-06-24 13:32:01 3823

原创 芯片无PWM功能,Mcu使用定时器中断产生PWM信号(第二篇)(附呼吸灯例程)

写在前面继上一篇博客介绍了PWM,使用一个固定时间的定时器中断,在此定时器中断查询阈值输出电平,从而达到输出不同占空比目的。此篇博客使用另一种方式,达到简化、高效率的目的。按上篇文章介绍,使用方法是:设定一个每隔100Us的定时器中断,设定周期为200次,当阈值为10次,在每次定时器中断中判断前10次输出高电平,后190次输出低电平。则输出的IO电平现象是:周期为100Us*200次=20Ms,高电平时间为100Us*10次=1Ms,低电平时间为100Us*190次=19Ms的信号。按上述方

2020-05-26 10:58:06 477

原创 音频品质的好坏2个指标——采样率和位深(运用Matlab验证)

采样率决定最高频率位深决定音频细节未完,待续

2020-05-22 17:40:46 5265

原创 单片机之间用普通IO做模拟通信设计(类似于IIC的主机和从机)

一、背景介绍一般单片机之间通信由Mcu的硬件模块完成,一般有:Spi、IIC、Uart、Can等,但也会遇到通信接口全部用完,则可以使用IO来模拟做通信协议。以下例程中,使用3个IO,实现主机发数据给从机的目的。(因没有使用到从机给主机发数据,所以没有设计)二、使用过程设计在比较熟悉Iic、Spi等通信协议,了解时钟、数据线等之后,便可以尝试使用IO来模拟实现通信协议。在此应用中,主机使用3个普通Io,从机使用3个普通Io。分别用作CS/SCL/SDA线。CS线从机控制,SCL和SDA线主机

2020-05-20 13:12:44 1716

原创 芯片无PWM功能,Mcu使用定时器中断产生PWM信号(第一篇)(附普通舵机例程)

PWM(Pulse Width Modulation)控制——脉冲宽度调制技术。在各个领域应用广泛,如下图是通过调整占空比达到模拟输出不同电压的目的,一般可用于呼吸灯等场景。一般芯片都带有PWM硬件模块,只需设置频率和占空比,则在IO自动输出相应的信号。但也有芯片没有PWM硬件模块,则可通过定时器来实现。原理为在定时器中断中判断阈值,调整IO电平,从而达到实现PWM信号。以下为操作实例...

2020-04-27 17:21:15 1820

原创 对射式光电传感器测速使用CD10406消抖动解决办法

最近在做一个单片机小车,其中需要使用测速,于是在TT马达上加了一个20格的光栅,另外购买了对射式光电传感器。光栅:;对射式光电传感器:;光电传感器原理是在没有遮挡物时灯亮、高电平;有遮挡物时等灭、低电平。一、初步的设计思路是采用外部上升沿或者下降沿中断来进行计数,从而达到测速目的当把光电传感器加到电路中时,发现在每次高低电平之间会产生几百个中断。检查了程序没问题,并用其他边沿信号测...

2020-03-05 08:58:47 3961 2

原创 Stm32芯片BootLoader实操(附带工程)

关于Stm32 BootLoader其他博客有很多介绍,这里只做重点摘要的介绍并附带上Stm32F103C8的BootLoader和App工程供下载。1、Stm32F103C8 64k Byte的Flash内存分配。一部分做BootLoader,一部分做用户(App)工程。我这里工程设置是0x08000000~0x08003FFF,总计16k Byte做BootLoader。0x080...

2020-02-24 12:48:58 1857

原创 Keil软件下C51开发环境的搭建

在keil5软件安装成功后,如果还想继续开发51内核单片机,则继续进行安装C51开发包。具体如下:1、将“c51v954a”安装在keil安装目录下;按如下步骤安装即可。2、安装后以管理员方式运行keil,在File-license management-下,拷贝CID至激活软件中,激活软件中分别选择“C51”和“MDK Standard/PL Prof.Developers Kit...

2019-12-04 17:29:06 1905 1

转载 IIC知识整理以及ADS1115

原文转自:https://blog.csdn.net/g2117805/article/details/70058978操作实例接下来将用IIC获取ADS1115芯片的电压值。SLAVE地址由于模块addr pin是悬空的,参考表5应该和Ground同一个地址,为SLAVE ADDRESS:1001000。Pointer 寄存器这个寄存器具有指向下一个寄存器的作用,类...

2019-06-07 14:16:46 970

转载 _attribute_((weak))的说明

在别人代码汇总看到“void __attribute__((weak)) DebugInitial(void)”函数。不解。在此文章中得到解答。原文链接如下。https://blog.csdn.net/mrpre/article/details/23097869...

2019-02-01 16:20:17 1077

原创 MATLAB对逻辑分析仪抓取到的Spi传输数据处理分析

立体声音频在Spi传输时出现问题,便只能通过逻辑分析仪抓取Spi传输口线数据来验证Spi传输的数据是否正常。数据格式为:①数据位数:16位数据;②传输格式:低8位在前,高8位在后;③数据是立体声传输,一左一右一左一右……的方式排列;④数据传输时是每包50个Bit;⑤每4包数据总共200个Bit(也就是100个16位;也就是50个左声道数据,50个右声道数据),在每200个bit结尾的8个bit...

2018-12-07 12:48:06 43404 2

原创 74HC595扩展IO芯片的使用以及例程(74HC595A和75HC595D的区别)

昨天有人问74H595这个IC的使用方法,虽然这个IC使用简单,但对于初学者理解还是较为困难,所以直接上程序来助理解。原理说明:首先给SH_CLK引脚时钟信号,给SD引脚数据信号,让存储8位数据。然后给ST_CLK引脚给上升沿脉冲,即可输出8位数据。同时注意OE是总开关,低电平才输出电平,MR是复位引脚,低电平复位。Q7’是高位输出引脚(意思是每给SH_CLK一个上升沿时,Q7的数据会通过Q7...

2018-12-01 09:51:33 9979

原创 关于Flash的学习(二,操作Flash时,Flash延长寿命的写法)

承蒙项目和同事的要求,因Flash擦除、写入太过于频繁,所以需要更换Flash地址写数据。背景简介:嵌入式开发,需要关机保存数据,C语言写。用512K Byte Flash。看了一篇网上文章后,借鉴前人的做法,写了以下代码,本人是运用前人原理中的一种(一部分),所以来说,应该看起来更加简单明了。前人源链接如下https://blog.csdn.net/baidu_37541954/arti...

2018-11-15 14:01:47 1040

原创 关于Flash的学习(第一步(后续继续更新))

首先对于MX25L3233F型号Flash。指令部分先不说,我先介绍Flash大小换算和擦除部分。首先,我们先明确下此Flash为32M Bit,也就是4M Byte。在文章开头概括时会介绍Flash有多少个扇区对应多大的Byte、多少个块对应多大的Byte。比如这里写到的是总共1024个扇区,每隔扇区4K Byte。所以这里这么计算,就跟Flash大小对应起来了:1024*4(K By...

2018-07-12 09:26:04 1006

原创 在MatLab中FFT和IFFT的互相转换

FFT变换是将信号从时域转换到频域,这样在时域复杂的信号转换到频域看起来就方便容易了很多。但有时候也需要将频域信号转换到时域,所以这时运用到IFFT变换。 其实IFFT的计算原理之一就是将频域(注意频域是复数)数据进行取共轭复数(虚部取反),然后再进行FFT变换,这样便将频域信号转换到时域。因为FFT变换的结果是复数,所以从频域进行FFT变换过来的结果也是复数,而此时只需取复数的实部...

2018-05-26 15:39:39 55915 13

STM32F401调试PID工程(串口按VOFA+软件的数据格式发送)

STM32F401调试PID工程(串口按VOFA+软件的数据格式发送)

2022-02-08

Stm32F401_20211123.rar

使用VOFA+软件和STM32CubeMa生成的工程进行PID算法调试

2021-11-23

Stm32 F103C8芯片BootLoader&App工程V2.zip

Stm32 F103C8芯片的BootLoader工程和App工程。运行可直接从BootLoader工程跳转至App工程。可通过Gpio A0可观察其跳转现象。参见博客见:https://blog.csdn.net/weixin_42316458/article/details/104475035

2020-02-25

空空如也

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

TA关注的人

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