自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LKAYA的博客

糟糕!是心肌梗塞的感觉!

  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 【嵌入式】自由时钟 (free running clock) 和非自由时钟 (non-free running clock)

自由时钟(free running clock),即运行时时钟频率、占空比等不随时间发生变化的时钟,通俗来讲线上一直有稳定的时钟信号,比如 I2S 的MCLK、BCLK。

2023-05-25 10:07:07 1636

原创 学校里很少提及但很实用的C语言开发基础知识

在实际的C语言开发中,会遇到很多学校很少提及的概念或者技巧,本文从一个嵌入式开发者的角度,分享了一些实际开发中非常实用的基础知识

2023-01-08 21:32:14 878

原创 malloc和calloc异同

malloc参数: 分配空间大小返回值: 分配空间首地址指针空间状态: 未初始化calloc参数1: 元素数量参数2:元素所占空间大小返回值:分配空间首地址指针空间状态: 初始化为0calloc会比malloc略慢,但会将分配的空间初始化为0,大部分情况下,从安全性上考虑,个人喜欢用calloc。malloc在以下情况下有一定概率出错:typedef struct { uint8_t *data; uint32_t len;} expample_t;expample_

2022-03-17 15:37:31 464

原创 C语言面向对象(下):驱动设计技巧

C语言作为最底层的高级语言,它的应用场景也十分底层,尤其在嵌入式领域使用较多。而在嵌入式领域,一般还能再分三层,嵌入式BSP,嵌入式驱动,以及嵌入式应用。本文将聚焦承上启下的嵌入式驱动,对于嵌入式驱动,也许不同人会有不同的理解,这里只是谈谈自己的一些见解和经验,写得比较杂乱,欢迎补充和指正。

2022-01-11 18:43:45 2177 2

原创 C语言面向对象(上):面向对象三大特性的实现

目录C语言面向对象为什么要面向对象什么是面向对象封装继承多态驱动设计名字API功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入C语言面向对象为什么要面向对象C语言作为一门面向过程的高级语言,具有非常高的运行效率,但相对来说它的

2021-12-19 19:53:23 3022 3

原创 petalinux自定义文件系统-添加官方/用户应用

0、确保文件系统从SD卡启动参考petalinux 的rootfs文件系统放在SD 分区上1、进入项目文件夹2、新建应用例如,需要添加openvswitch应用时petalinux-create -t apps --template install --name openvswitch --enable3、移植官方应用以openvswitch为例,进入petalinux安装目录,搜索openvswitch打开第一个文件夹上面文件夹不要关,再打开项目中刚刚创.

2020-11-12 10:42:56 3469

原创 卡尔曼滤波器阶次问题

有人私信我说,卡尔曼滤波的时候加速度认为保持不变似乎不妥其实这个可以理解为对加速度a作了零阶保持,即认为a(k+1)=a(k),上面一共三个变量,因此我将其称为三维零阶卡尔曼算法。当然这里也可以替换成一阶保持甚至二阶保持。对于一阶保持,a(k+1)=a(k)+[a(k)-a(k-1)],也就是多了一个微分项那么上面的矩阵以微分表示为或直接以变量表示也就变成了四维一阶卡尔曼算法。二阶保持同理,再多一个加速度的二次微分,成为五维二阶卡尔曼。当我们只需要对一个变量进行滤波时,一

2020-10-30 15:14:34 2305 2

原创 基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度

本文主要介绍了卡尔曼滤波器的使用原理,给出了matlab代码,并在STM32F407平台对卡尔曼滤波器进行了验证,传感器为MPU6050与DPS310,测试结果令人满意,速度与高度无累积误差。系统状态方程在开始讲卡尔曼滤波器之前需要先提一下状态方程。因为卡尔曼的计算公式是建立在状态方程上的,所以我们需要先写出系统的状态方程。离散状态方程为:其中X(k)为当前状态,X(k+1)为下一...

2020-08-23 20:13:47 19283 40

原创 加速度频域积分的实现及其局限性分析

首先,相信大家都尝试过直接在时域中通过加速度传感器积分得到位移。在加速度精度不高或者加速度数据不经处理的情况下,积分得到的位移量会一直有一个累计误差,而且会越来越大,这时有人就会把目光移到频域中,在频域中对加速度进行积分会怎样呢?会不会有出乎意料的效果呢?什么是频域积分单片机或者传感器采样得到的点都是离散的,在时域中,对于离散点的积分就是求和。而频域积分需要先把时域的数组通过快速傅...

2020-08-23 20:13:33 23911 48

原创 Xilinx zynq系列pcie xdma通信(二):下位机PS端

在上一篇博文中介绍了PL端的设置,本文继续介绍PS端的设置。PS端仅用于验证上位机读写DDR3是否正确,因此相对比较简单。一、新建SDK项目在生成好bit文件之后先Export Hardware启动SDK打开SDK后界面如图,可以看到自动生成了一个platform_0的文件夹,这个文件夹里的内容就是之前文章中zynq的一些配置内容。当工程目录发生更改后,SDK又会再自动生成一个platform。platform文件夹删除后,重启SDK可自动重新生成platform配置信息。

2020-07-11 17:01:34 4133 4

原创 Xilinx zynq系列pcie xdma通信(一):下位机PL端

一、前言本人没什么FPGA的开发经验,然而一上来就要搞zynq和PCIE通信,上手真的太难了。查阅了各种网上资料,经历了一个多月各种测试终于成功调通了。因为网上关于pcie的资料太少,翻来翻去就是那么些内容,因此想要详细总结一下这方面的要点,帮助小伙伴少走弯路。我使用的平台是VIVADO 2017.4,芯片型号XC7Z015-2CLG485I,开发板是ALINX的AC7015。好了,废话不多说,进入正题。二、建立工程取好工程名字,选好路径(注意:工程名称和路径都不要有中文和空格),点击下一步

2020-07-10 17:05:06 7667 7

原创 VIVADO SDK不断重新编译的问题

因为同时开启了自动保存和保存自动编译解决方法菜单栏project->Build Automaticly把Build Automaticly前面的√去掉即可

2020-05-28 14:45:11 1192

原创 VIVADO SDK无法识别标准库问题

在生成的bsp工程中,添加自定义库的时候发现无法识别C标准库,而在主工程中可以,因为缺少了头文件路径解决方法工程文件上右键->properties->C/C++ Include Paths and Symbols->Add External Include Path添加如下位置...

2020-05-28 14:41:46 3272

原创 Vivado仿真信号无输出问题

问题描述第一次用vivado仿真,发现有的模块有信号,有的没有信号,而且诡异的是,把相同文件越往上层移动,信号就能显示出来,如图,很多没有信号输出。一开始以为vivado自带仿真软件不好用,换了modlesim还是一样。原因仿真时只加载被添加到仿真窗口的信号,如果需要查看其它模块,尤其是底层模块中的内部信号时,添加信号后需要重新仿真解决方法1、先将需要查看的信号添加到仿真窗口(如上图中没有信号的几个信号)2、重新仿真...

2020-05-20 10:20:16 8565 4

原创 matlab使用polyfit拟合一次函数时的注意事项

在做数据处理时我们常常会使用matlab中的曲线拟合函数polyfit,然而使用polyfit的工程中遇到了一些坑。鉴于网上大部分文章只说明了polyfit的使用方法,并没有谈这个问题,所以分享一下这个坑点。polyfit简介polyfit是专门用来拟合多项式的一个函数,函数用法如下:p = polyfit(x,y,n);[p,S] = polyfit(x,y,n);[p,S,m...

2020-05-02 16:04:49 4285

原创 如何将ubuntu配置为路由器(二)

上次文章链接:如何将ubuntu配置为路由器上次说到将具有六个独立网卡的软交换机通过NAT的方式实现了一个网卡与另一个网卡跨网段上网功能,那么有没有一种方法,能让其中一个口作为wan口,其他网口作为lan口且全在同一局域网下?您好,有的。答案就是linux的bridge(桥接)功能。Bridge网桥关于bridge的简介可以参考这篇文章,我认为讲得简单易懂Linux Bri...

2019-10-23 21:30:42 2445

原创 关于Link时函数未找到(未定义)的问题

问题描述用cube生成了一个STM32F4的工程,移植了一个tcp客户端的.c和.h文件,报错如下解决过程先尝试用"Go to definition"跳转,结果无法跳转,检查头文件也已包含确认是否包含"dns.h"文件路径,确实已包含进入"dns.h"与"dns.c"确认该函数是否存在,的确存在(源码怎么可能不存在),调用也没问题,的确是本工程目录下的"dn...

2019-10-23 20:22:54 3003

原创 如何将ubuntu配置为路由器

1 硬件基础首先,需要具备的硬件条件是一台具有两个或两个以上网卡的Ubuntu设备,常见的比如一些软路由设备,常规主机一般只有主板上自带的一个网卡,笔记本一般有一个无线网卡以及一个有线网卡。如果当前设备网卡不够,可以购买USB网卡或者PCIe网卡来进行配置。我使用的是一个系统为Ubuntu14.04的六网卡设备。2 网络环境在配置交换机前需要明确当前网络环境,最重要的就是需不需要拨...

2019-09-28 21:06:30 7835

原创 从零开始搭建web服务器(一):云服务器购买、配置与连接

出于学习的目的,打算自己动手搭建属于自己的服务器。搭建服务器有比较多的选择,可以选择用自己个人电脑作为服务器,购买域名后可通过域名访问,也可以租用云服务器。我选择了云服务器,比较省事。一、购买服务器云服务器的提供商有很多,向朋友了解了一下,阿里云相对比较稳定,还有学生优惠套餐(腾讯云也有学生套餐),于是选择了阿里云。阿里云学生套餐链接:https://promotion.aliyun....

2019-08-19 14:43:41 1760 4

原创 手把手教你用STM32cube调通STM32H743以太网通信并实现TCP客户端

STM32H7内核是Cortex-M7,目前接触到与M4最大的区别就是CACHE,M7有两个CACHE,DCACHE和ICACHE。因为这个CACHE踩了很多坑。本例程软硬件配置为:FreeRTOS+LwIP+LAN8720,在正点原子阿波罗开发板上测试1. Cube配置RCC都使用外部晶振,因为后面要用到FreeRTOS,cube会建议使用TIM1作为SYS时钟源系统不考虑功...

2019-07-09 16:56:28 27023 31

原创 STM32 malloc内存分配失败问题

问题分析malloc内存分配失败无非是下面两种情况:可用内存不足 数组指针越界但是这两种情况的形成原因有多种,此处以STM32F407VGT6举例,192+4KB SRAM,1MB FLASH。内存不足第一种是造成内存不足的原因是由于初始化的堆长度不够引起的,一般STM32的例程默认的栈长度为0x0400,堆长为0x0200,也就是说分别只有1024字节和512字节,堆和栈具体...

2018-07-30 13:23:42 9684 2

基于STM32F407与JY901模块的加速度频域积分实现

基于STM32F407对加速度进行频域二次积分(完整工程文件),需要用到F4的DSP库。本文件参考了王济《matlab在振动信号处理中的应用》一书中频域二次积分的matlab代码。该文件测量的位移为振动位移(总位移为0),单次非零位移的测量不适用。

2019-10-25

STM32H743以太网通信TCP客户端实现(IAR)

基于STM32Cube生成的代码,添加DCache相关代码,实现以太网通信与TCP客户端,具体步骤可参考博客https://blog.csdn.net/qq_31847339/article/details/95051300

2019-07-09

三阶卡尔曼计算加速度、速度、高度的MATLAB仿真及STM32验证

本资源提供三阶卡尔曼算法对加速度计和气压计的采样值进行数据融合与滤波,得到加速度、速度、高度值 本次修复了速度为0的bug 详细资料可参照博客https://blog.csdn.net/qq_31847339/article/details/90040387

2019-06-13

基于STM32F4的加速度频域二次积分振动位移C语言算法

基于STM32F407对加速度进行频域二次积分,需要用到F4的DSP库。本文件参考了王济《matlab在振动信号处理中的应用》一书中频域二次积分的matlab代码。该文件测量的位移为振动位移(总位移为0),单次非零位移的测量不适用。

2018-08-02

空空如也

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

TA关注的人

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