自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

廖旭 廊坊师范学院信息技术提高班第十一期

要想改变现在的生活,就要改变自己的思维方式

  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 Ubuntu14.04下安装arm-linux-gcc 4.3.2

arm-linux-gcc是交叉编译工具链,使用这个工具链可以嵌入式Linux系统所需的操作系统,应用程序等,然后在上传到arm目标机就可以运行了。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系的程序代码。对于arm-linux-表示是对arm的交叉编译工具链;arm-linux-gcc表示是使用gcc的编译器。下面就针对这个工具链安装进行介绍: 1.将压缩包arm-linux-gcc-

2016-09-10 00:42:50 4911 12

原创 FOC矢量控制综述

想要理解FOC是如何工作的,首先应该在头脑中设想参考坐标变换过程。如果从定子的角度来设想交流电机的运行过程,则会看到在定子上施加了一个正弦输入电流。该时变信号产生了旋转的磁通。转子的速度是旋转磁通矢量的函数。从静止的角度来看,定子电流和旋转磁通矢量看成交流量。 设想在电机内部,转子随着定子电流所产生的选择磁通矢量以相同的速度同步旋转。如果从这个角度观察稳态条件下的电机,那么定义电流看似

2016-07-17 22:52:58 17378 18

原创 Ubuntu14.4.04安装Samba服务器

最近参加了一个关于ROS的沙龙,这个系统以前就了解只是没有操作,正好赶上这个机会就一起玩玩。由于ROS是基于Ubuntu下开发的,所以还想玩ROS就必须安装Ubuntu,接下来就有安装Samba的经历了。 1、 安装Samba文件 这个比较简单只需执行一条命令就可以了,如下: sudo apt-get install samba samba-common 其中samba是服

2016-07-15 00:09:11 908 8

原创 M4的位带操作

1、位带简介 位操作——单独的对一个比特位读和写。在以前的51单片机中可以通过sbit来实现位定义,但是在F4中没有这样的关键字,而是通过访问位带别名来实现。 在F429中,有两个地方是实现了位带,一个是SRAM区的最低1MB空间,另一个是外设区最低1MB空间。位带别名区把这1MB空间的每一个位膨胀成一个32位的字,当访问位带别名区的这些字,就可以达到访问位带区某个比特位的目的。 2、位带

2016-03-20 20:18:20 2393 15

原创 C语言对寄存器封装

一、封装外设 用C语言代码把外设地址映射用宏定义封装/* 外设基地址 */#define PERIPH_BASE ((unsigned int)0x40000000)/* 总线基地址 */#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + Ox00010000)../* GPI

2016-03-12 21:35:29 2347 12

原创 再识M4—F429

时隔一年再次学习Cortex-M4内核,既熟悉又陌生。熟悉——是因为以前接触过,陌生——是因为以前没有深入理解。 首先看看F429的内核架构, 内核与外部设备通讯有三条总线,分别是I-Code、D-Code及系统总线。I-Code用于取FLASH中的指令,而D-Code则是专门用于取数据表中的数据,系统总线(S-Bus)用于访问内存和外设。 STM32存储器架构 内核给它的外设编了号

2016-03-02 21:22:58 1451 11

原创 姿态解算之四元数

一、四元数定义 顾名思义,四元数是由四个元构成的数。 其中,q0、q1、q2、q3是实数,i、j、k即使互相正交的单位向量,又是虚单位向量。 二、四元数的表达方式 复数式 可视为一个超复数,Q的共轭复数记为 矩阵式 三、四元数的大小——范数 四元数的大小用四元数的范数来表示: 若||Q||=1,则Q称为规范化四元数。 四、四元数的运算 设 1)加法

2016-01-10 17:34:49 17886 15

原创 飞控算法——互补滤波器

在了解滤波器的开始先看几个概念 传感器 两轴加速计: 1.测量加速度实际上是推动每个单元的块。 2.可以用来测量重力加速度,上图中x轴加速度为0g,y轴加速度为1g。 3.可以用来测量倾角。 上图中x轴方向上有重力的作用,左边的图中x有正向的加速度,右边的图中x有负向的加速度。这就使y轴方向的加速度减小。 陀螺仪 作用: 1.测量角速度(旋转的角度)。 2.当静止时

2015-09-30 21:35:46 4703 13

原创 PID参数的整定

上一篇介绍了PID,下面就说说如何调整参数。 首先先看几个基本概念 单回路:就是只有一个PID的调节系统。 串级:把两个PID串接起来,形成一个串级调节系统。 主调:串级系统中,要调节被调量的那个PID叫做主调。 副调:串级系统中,输出直接去之后执行器动作的按个PID叫副调。 动态偏差:在调节过程中,被调量和设定值之间的偏差随时改变,任意时刻两者之间的偏差叫做动态偏差。 静态偏差:调解

2015-09-29 21:46:41 3017 12

原创 飞控算法之PID

本篇文章中,我们将粗略的了解一下PID过程控制算法,涉及到一下概念和几个分立算法。 PID是什么? 在弄清除PID之前,我们先理解一个概念:调节器。调节器是干什么的?调节器就是人的大脑,就是一个调节系统的核心。任何一个控制系统,只要具备了带有PID的大脑或者说是控制方法,那它就是自动调节系统。基本的调节器具有两个输入量:被调量和设定量。被调量和设定量。被调量就是反映调节对象的实际波动的量值。设定

2015-09-21 21:00:47 4969 12

原创 工作小结—软硬能力

不知不觉来深圳已经三周了,基本没有干什么技术上的事情,干的工作基本上就是一些打杂性(个人定义)的工作。 上周完成了电台自组网络的方案,算是干的一件有价值的工作吧。简述一下电台自组网络,因为目前市面上的电台都是以多波广播的方式进行数据的传输的,是无法完成制定单一电台发送数据的,这样就完成完成电台之间自组网络。刚接到这个项目的时候,我一点都不懂而又不了解具体的需求,就让我找组网电台,结果找了好几家公司

2015-08-31 20:38:14 1132 15

原创 幸运的“浪人”

我从上初中就开始了漂泊的生活,由于自己比较爱玩,初中和高中都不好好学习,基本就是玩过啦。自己勉勉强强的考入了廊坊师范,又稀里糊涂的选择了这个专业,这个专业是我老姨给我选的,我当时都不知道是这个专业是干什么,我老姨感觉这个专业使用。(估计是跟电子有关系,毕业找不到工作还能去电子厂呢!)到了大学开始也是稀里糊涂的玩啊。回来机缘巧合开始从思考自己以后的生活了。这个时候又遇见了一个好老师,把我带进了实验室,

2015-08-30 19:58:27 905 20

原创 再识Cortex-M3之堆栈

寄存器组Cortex-M3拥有通用寄存器R0-R15以及一些特殊功能寄存器。R0-R12是最”通用目的“的,绝大多数的16位指令只能使用R0-R7,而32位的Thumb-2指令则可以访问所有的通用寄存器。特殊功能寄存器必须通过专用的指令来访问。 通用目的寄存器R0-R7 R0-R7称为低组寄存器。所有指令都可以访问,R8-R12称为高组寄存器,只有很少的16位Thumb指令能访问他们,32位的T

2015-08-30 19:20:11 4648 11

原创 再识Cortex-M3之概述

前言在上周会见了Jason,基于无人机的市场和技术列出了三个方向的规划,基于这个规划再次踏上了深入Cortex-M3内核的之旅。这里学习的材料主要是中文的《Cortex-M3权威指南》,英文的《The Definitive Guide to Arm Cortex-M3 and Cortex-M4 Processors_c》。本来材料就一个英文的文档,但是看下去太困难了,所以就选择了一个中文的翻译版本

2015-08-23 16:19:30 1397 6

原创 设计自己Bootloader——核心代码的初始化

核心代码的初始化包括异常向量表、设置svc模式、关闭看门狗、关闭中断、关闭mmu下面对这个五部分一一进行说明。一、异常向量表1.1 异常-Exception 异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件。 1.2 异常类型 ARM处理器支持7种类型的异常 1.3 异常向量 当一种异常发生的时候,ARM处理器会跳转到对应异常的固定地址去执行

2015-07-20 17:41:52 1475 14

原创 让世界一下变大—MMU

一、MMU的功能解析1、MMU的作用 1.1 将虚拟地址转化为物理地址 虚拟地址(VA)是软件程序能表达的非物理的实体地址,物理地址(PA)是存储单元对应的实际地址。在没有启动MMU之前,访问的地址都是物理地址,我们访问0地址,就要写(int*)0x00,启动MMU之后就可以将虚拟地址0x50000000映射到物理地址0x00,则访问0地址就可以这样写(int *)x0x50000000。

2015-07-19 21:15:41 1619 16

原创 汇编语言得玩转

一、ARM汇编编程概述1.1为什么需要使用汇编 原因:1.汇编执行效率高 2.没有C语言运行环境。有两种情况需要使用汇编语言:1.Bootloader、内核在初始化的时候,2.启动代码、对效率要求高的地方(C和汇编混合编程) 1.2ARM汇编分类 目前常用的ARM汇编指令有两种: 1.ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用,如ADS中使用。

2015-07-17 20:47:46 1057 16

原创 ARM寻址方式

一、概述寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式。二、寻址方式1、立即数寻址 立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即数寻址。例如 : ADD R0,R0, #0x3F; R0<—R0+0x3F 在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀

2015-07-15 15:29:08 875 13

原创 ARM编程工具篇——链接器脚本

一、概述 每一个链接过程都由链接脚本(linker script,一般以lds作为文件的后缀名)控制。链接器脚本主要用于规定如何把输入文件内的section放入输出文件内,并控制输出文件内各部分在程序地址空间内的布局。 二、脚本构成 2.1基本构成:段 一个可执行程序通常是由:代码段(text),数据段(data),bss段构成的。同样,在用于链接这个程序的链接器脚本

2015-07-15 10:03:59 1833 9

原创 ARM编程工具篇——Makefile

在Linux中使用make命令来编译程序,特别是大程序;而make命令所执行的动作依赖于Makefile文件。为什么需要Makefile1、Makefile用途      使用GNU Make工具来管理程序是每个Linux工程师必修掌握的技能。make能够使整个程序的编译、链接只需一个命令(make)就可以完成。      Make的工作主要依赖于一个叫Makefile的文件。Ma

2015-06-29 20:56:47 1315 10

原创 ARM编程工具篇——交叉编译

嵌入式开发模型—交叉开发在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。由于我们是把编译出来的程序运行在ARM平台上的,所以我就必须使用arm-linux-gcc、arm-linux-ld、arm-linux-objcopy、arm-linux-objdump等交叉编译工具。arm-linux-gcc选项一个

2015-06-28 15:07:45 1001 7

原创 Linux【Red Hat】——samba服务器的配置

一、简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File Syst

2015-06-20 10:59:56 3146 14

原创 Linux【Red Hat】——GCC程序编译

GCC简介GCC特点    Gcc(GNU C  Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。Gcc可以在多种硬件平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。基本用法  Gcc最基本的用法是:    gcc [options] filenames     options:编译器所需要的编译选项

2015-06-01 21:08:16 2811 10

原创 Linux【Red Hat】——sudo用户管理

在Linux有严格的用户权限,一些特殊的操作只能在root用户操作,但是我们又不能把所有的事都只让root用户操作。这就像一个学校如果什么事都只让校长一个人来做,那这个学校应该就乱了。所以我们要权力下放,把一些权力分配给其他用户。root用户通过sudo用户管理分配一些权力给普通用户,下面就一个实例加以说明。如果我们想创建一个用户,一般用户是没有这个权力的,只用root用户才有这样

2015-06-01 10:58:14 1604 10

原创 Linux【Red Hat】——网络配置及远程登录

这里我使用的VMware虚拟机安装Red Hat的方式搭建的嵌入式Linux的软件环境。    首先是安装Red Hat Linux,这里基本是傻瓜式的安装没有什么难度的,但是在给虚拟机分配内存的时候特别注意一定要分配大点,我这里分配的1G,如果分配的太小在安装的时候系统会自动把桌面化图形界面省略,只有命令模式。这样就我们这种“Linux小白”是非常悲催的一件事。    在安装好Linux

2015-05-30 16:19:20 4176 14

原创 MsOS——概述

当程序比较大的时候,需要多人协同开发,但不同的人擅长的领域不同,每个人的精力也有限,哪怕都懂,也不可能让一个人全部完成,这样项目开发周期太长,所以需要对程序进行分层分块。    软件编程讲究的是“高内敛、低耦合”思想,意思是说把一个完整的功能放在一起,而这个功能对外的接口尽可能的少。分层分块的分割点要符合这个特点。“高内敛、低耦合”是分层分块的基本思想,这个思想也是面向对象编程所倡导的思想,这

2015-05-01 00:12:29 1623 7

原创 “凤大论道”——技术管理与前后台系统的关系

这让我想起,每个人都想着拼命的往上爬,想着坐高位,但问题在于,自己是否具备这个高位的技能,并且这些不同的位置是如何定义的呢?这段时间都在写 msOS 文档,以前后台系统架构作为切入点展开程序的设计思路。里面有大循环、节拍、中断三要素,发现这些要素跟技术管理完全可以对应起来,那就以此来阐述技术管理。1、 普通技术人员做事,如同大循环,只做一件事, 也只能做好一件事, 一般不允许被打断。2

2015-05-01 00:06:26 844 6

原创 频率发生器小结——时序分析

经过好长时间的调试一点进展都没有,我开始的时候就怀疑是时序有问题,于是就各种用示波器测试波形,但是跟时序对照又没有发现问题。经过自己在网上反复查阅资料,在网上找到了一份DDS(Direct Digital Synthesizer)常见问题解答。     这份问题介绍了常用DDS芯片的选型,DDS的基本概念,DDS没有输出,怎么办?这个就是我想要的。       1.首先得保证硬件电路没有问

2015-04-27 00:21:15 1432 17

原创 频率发生器——再学SPI总线

去年这个时候是调试让人头疼的IIC总线,今年这个时候用遇到了SPI。由于这次频率合成器选好的AD9859,它是串行输出控制,差分信号输出。    SPI(Serial Peripheral interface)是串行外设接口,是一种高速的,全双工,同步的通信总线。共需要四根线,它们分别是MOSI(主器件数据输出),MISO(主器件数据输入),SCK(时钟信号)SS(从设备选择信号)。   

2015-03-31 21:26:58 1567 7

原创 “老猫”教学系列——空载保护电路

———本系列博客属于“加菲猫”帮助他人解答问题的汇总。     问题描述为:L是加热线圈,如果L突然断开,比如温度过高或忘了冷却导致线圈烧断,这是初级电路是怎么个情况?如图:    变压器次级一旦空载,初级电感量一般会急剧增大,于是初级L和电容C组成的串联谐振失谐,变成点感性负载,处理不好会在MOS管D-S之间造成很高的反压。以电磁炉为例,加热线圈等于初级,锅子相当于次级,一旦正在

2015-03-09 21:36:04 2141 14

原创 “老猫”教学系列——单电源运放

———本系列博客属于“加菲猫”帮助他人解答问题的汇总。    什么叫单电源供电运放?    运放本质是一个类似OCL功率放大器的电路。差分输入级,中间电压放大器,末级互补推挽输出级。    BG1、BG2是输入级,BG3是恒流源负载,BG4、BG5是第二差动放大器,BG6是电压放大器或者叫中间放大级,BG7、BG8则是互补推挽输出。    当上图电路用双电源供电使,

2015-02-27 20:14:55 3427 8

原创 二维码扫描仪

在老师在刚跟我谈了这个项目的时候,问了能不能做的时候,我刚开始没干答应。我给老师的回复是我得先了解一下,然后在给他回复。我说完,老师好像有点不太高兴,让我回去去了解吧,三个小时之后给他答复。他应该是想听到我说“没问题,我能做”或者类似的答案吧。         回来之后查资料,回来自己又想了想,感觉就是一个手持机设备,想到这里,我就去问“凤大”和“涛行九天”了他俩是专门做手持机的。我跟他们描述

2015-01-31 21:18:40 1144 6

原创 DDS技术原理即应用

DDS是直接数字频率合成器(Direct Digital Synthesizer)的缩写,DDS技术在频率合成方面体现了优越性能,得到了广泛的应用。直接数字频率合成器由基准时钟,相位累加器、波形存储器、D/A转换器和低通滤波器(LPF)五部分构成,如图:                                       相位累加器由N位加法器和N位寄存器构成。每来一个时钟Cl

2015-01-29 16:10:19 5535 14

原创 C语言系列——关键字二

接上一篇,继续总结C语言剩下的几个关键字,个人感觉用好会大大提到代码的规范性和可读性。     1>    struct关键字         struct是个神奇的关键字,它将一些相关的数据打包一个整体,方便使用。                           上面这段话是在网上找的,用以说明struct的神奇。          struct结构体通常跟typ

2014-12-31 16:47:46 1139 24

原创 C语言系列——关键字

从接触C语言到现在也有好几年了,这个在阅读ESC32源码的时候感觉自己差的还是很多的。里面运用的大量的宏定义,这样就加大的阅读的难度,但是这样就大大方便的维护,这应该是一个平衡问题吧。今天就C语言关键字简单的总结一下,试问:C语言有多少个关键字呢?关键字意义  auto声明自动变量,缺省使编译器一般默认为a

2014-12-29 16:40:06 1224 15

原创 硬件小结篇

经过一个多月的时间硬件的设计、布线已全部结束,剩下的就是打样、焊接、测试了。    在这次设计中,整体方案是参照“阿嘉”的,主要是四翼的硬件方案已经比较成熟了,国内的开源方案都基本大同小异了,所以没有做太大的改动了。    在整个设计的过程中应该感谢“流星赶月”的帮助,一些器件的选型、PCB的走线都指点了我很多。同时认识都自身的不足,了解的器件太少了,布线的经验不足,工程规范化欠缺。 

2014-12-14 21:48:17 1482 10

原创 ESC32硬件---PCB小结(第二版)

继上次总结完成,中间找出了许多错误,又进行了重新布局布线。在第二次的布线过程中要应该注意的地方在布线的时候都加以注意了。其中还发现了一个原理性的错误,就是在检流部分。原版的电路是单端输入,经过放大进入ADC,这样的设计就要求检流电阻的接地端的导线要足够的短,但是在实际的布线和走线的过程中导线的长度是很长的,导线上的阻抗已经快接近检流电阻的阻值了。在进过请教“流星”和“keter”之后决定给为差分输

2014-11-24 21:01:29 2307 6

原创 ESC32硬件---PCB小结(第一版)

经过一个星期的画PCB,今天终于化了,整体看上去还比较满意,具体的性能还得等后期制板、测试才知道。这个电路属于低频功率型板,相对高频板信号质量就要求不高了,所以也就不用考虑信号完整性等问题了。    等完成原理图的设计之后,我就请教了好几个人,在布线的时候需要注意的事项,但是没有得到什么有价值的答案,原因是他们不了解我,只是站在自己的去看待这件事了,所以对于他们就没什么难度了。在原理图

2014-11-09 21:19:48 4297 5

原创 ESC32硬件---电路分析二(电流检测和反电动势检测)

电流检测和反电动势检测 电流检测是其保护作用的,检测电机全速旋转过程中的电流。当MCU检测到电流过大时,会立即切断电机供电,实现软件过流保护功能。具体怎么样其保护得根据软件程序的设定。(这个等后续在完善吧)这个应该商业电调中的额定电流的参数指标了。首先看一下电路图:  这里的电流是“总流”,而不是分流,是经过MOSFET和电机的电流全部从电阻R16上进过,形成一个压降,

2014-11-08 10:56:32 14572 4

原创 ESC3电调---电路分析(换相电路)

换相的理论知识可以看无感无刷直流电机之电调设计全攻略         首先看一下六臂全桥驱动电路原理Q1到Q6为功率场效应,当需要AB相导通时,只需打开Q1,Q4管,而使其他管保持截止。此时电流的流经途径为:正极àQ1à项圈Aà绕相BàQ4à负极。根据这样的导通模式:AB,AC,BC,BA,CA,CB即可是电机软一圈。         这里在AB导通的过程中,A点的电位就近似认为是

2014-10-22 22:04:35 10910 19

跟我一起写Makefile

在这篇文档中,将以 C/C++的源码作为我们基础,所以必然涉及一些关于 C/C++的编译 的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是 UNIX 下的 GCC 和 CC。

2015-06-29

GUN make中文手册

本文比较完整的讲述 GNU make 工具,涵盖 GNU make 的用法、语法。同时重点讨论如何 为一个工程编写 Makefile。作为一个 Linux 程序员, make 工具的使用以及编写 Makefile 是必需 的。系统、详细讲述 make 的中文资料比较少,出于对广大中文 Linuxer 的支持,本人在工作之余, 花了 18 个多月时间完成对“info make”的翻译整理,完成这个中文版的书册。本书并不是一个 语言的翻译版本,其中对 GNU make 的一些语法和用法根据我个人的工作经验进行了一些详细分 析和说明,也加入了一些个人的观点和实践总结。本书的所有的例子都可以在支持V3.8版本的GNU make 的系统中正确执行。

2015-06-29

突破Allegro SPB 学习之第一难关------建立PCB封装(修正版).pdf

在网上找的Allergro软件焊盘的制作教程,讲的非常详细,根据教程我们可以更加清楚的焊盘的好多概念,配合于博士的视频一定能根据自己的需要做出自己想要的焊盘!

2014-07-26

嵌入式工程师必知必会

嵌入式工程必看,非常有价值!该书可以告诉你学习什么知识,该怎么来锻炼技能!

2014-02-24

空空如也

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

TA关注的人

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