自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 基于状态机State Machine的程序设计技巧②状态转移图和简单通信协议

基于状态机进行程序设计的第一步是要设计状态机的状态设计,然后基于设计的状态画状态转移图,所谓状态转移图就是用于描述说明状态机中各个状态之间的转移条件以及操作。下面使用状态机设计一个之前常用的通信协议,之前大量使用标志位的技巧,虽然也能实现给定的通信协议,但是稳定性、可移植性和可维护性较差,这里使用状态机的方式重写这个通信协议。        首先介绍一下这个通信协议,T作为帧起始字符,Q作为帧

2016-12-30 11:40:55 4864

原创 基于状态机State Machine的程序设计技巧①

第一次接触到状态机这个词是在学习FPGA的过程中,传统的CPU在处理任务的时候是进行串行工作的,而FPGA内部则是并行处理任务,所以进行FPGA的程序设计是十分注重同步,这里说的同步不是同时做事情,而是有纪律地做事情,引用百度百科上对同步的解释:同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。使用最多的同步方式就是状态机State Machine,虽然我对FPGA只有很浅薄的

2016-12-29 15:31:09 1678

原创 PMOS和NMOS管的区分和电路

PMOS和NMOS的区分:http://jingyan.baidu.com/article/ceb9fb10c220a18cac2ba045.html第一种方法就是可以根据电流的方向来判断,如下图说是,电流流出的为NMOS管下图为PMOS管,电流流入的为PMOS管。

2016-12-28 14:36:20 9491

原创 晶体(crystal)和晶振(oscillator)的区别

参考文章:http://www.diangon.com/wenku/rd/dianzi/201502/00019711.html晶振与晶体的区别:1) 晶振是有源晶振的简称,又叫振荡器。英文名称是oscillator。晶体则是无源晶振的简称,也叫谐振器。英文名称是crystal,电路上简称为XTAL。2) 无源晶振(晶体)一般是直插两个脚的无极性元件,需要借助时钟电路才能产生振荡信号。...

2016-12-28 09:30:29 26815

转载 Android UDP

原文:http://www.cnblogs.com/liqw/p/4867657.html一、UDP协议全称是用户数据报协议 ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。1、UDP是一个无连接协议,传输数据之前源端和终端不建立连接;2、不维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息;3、UDP信息包的标

2016-12-20 09:45:03 621

原创 Putty打印时只有CR回车符时的问题

Putty是一个非常小巧的终端连接软件,拥有SecureCRT以及串口调试助手的功能。偶然在使用Putty的时候遇到一个问题就是一个GPS模块发送的每两行数据之间的换行符使用的是CR回车符而不是,也就是Linux下的标准,而Putty作为Windows下的软件识别CR+LF即回车加换行作为换行标准,所Putty接收到来自GPS模块的数据时不会进行换行操作而是在同一行不断地刷新数据导致无法查看完整的

2016-12-16 10:19:25 3525

转载 GPS模块数据格式

GPS模块数据格式GPRMC(建议使用最小GPS数据格式) $GPRMC,,,,,,,,,,,1) 标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。2) 定位状态,A =数据可用,V =数据不可用。 3) 纬度,格式:度度分分.分分分分(ddmm.mmmm)。4) 纬度区分,北半球(N)或南半球(S)。

2016-12-15 14:11:18 5922

原创 Linux下串口程序设计

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-12-15 13:53:57 682

原创 USB接口

USB标准接口有四根线,分别是VBUS电源线、GND地线、USBDM(USB Data Minus)数据负信号、USBDP(USB Data Positive)数据正信号,各种USB接头的原理图如下:常用的电脑上的那种是左边的A型母头,鼠标键盘使用的是A型公头,智能手机上的是Micro-B型母头,手机充电器使用的是Micro-B型公头,关于公母头如何区分可以参考人类交配标准,呲呲。连接头的引脚

2016-12-14 16:13:30 8893 2

原创 IIC读写16位地址的寄存器

一般来说IIC器件的内部寄存器地址都是8位的,这样在进行读写操作时,发送完器件地址之后直接发送一个字节的寄存器地址,然后即可以进行读写。但是有的器件内部寄存器是按照16位地址编排的,例如一些EEPROM器件,由于存储的数据量较大就会需要较大的寻址空间,对于这种的器件的内部寄存器寻址就需要多个字节的地址,也就是在发送完器件地址之后需要发送多个寄存器地址字节,具体实现如下程序所示:u8 IIC_R

2016-12-12 10:46:01 20442 3

原创 Linux下使用math函数

Linux 下使用常用的 数学函数时需要包含math.h头文件,但是仅仅包含math.h头文件是不够的,还需要在Makefile文件中添加“-lm”,这个是表示链接数学函数库,相似的使用线程编程的时候需要链接thread库: -lpthread。

2016-12-09 11:08:16 3152

原创 Altium Designer的几种常用布线技巧

Altium Designer的几种常用布线技巧:关于AD9各种布线总结(很详细)http://www.51hei.com/bbs/dpj-30480-1.html(出处: 单片机论坛)蛇形布线介绍:电路板上的任何一条走线在通过高频信号的情况下都会对该信号造成时延时,蛇形走线的主要作用是补偿“同一组相关”信号线中延时较小的部分,这些部分通常是没有或比其它信号少通过另

2016-12-08 10:20:18 6324

原创 STM32-CubeMX学习笔记

1、首次使用参见文档:http://blog.csdn.net/tq384998430/article/details/534662632、CubeMX使用的HAL库中宏定义都是使用两个下划线加上全大写字母构成,因此程序中看见双下划线全大写的函数基本都是宏函数。

2016-12-06 15:14:42 2859 1

原创 FAT32文件系统解析

文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程序、文档还是音视频都是基于文件系统的。所以由此可见文件系统在计算机上的重要地位。        嵌入式系统上有很多场合也需要使用大容量存储设备,这时候可以直接使用存储设备的读写API来进行数据的保存和读取,但是这样做的

2016-12-02 17:48:38 8346

原创 串转并芯片74HC595和74HC164的区别

串转并芯片一般用于对于速度要求不是非常严格并且IO资源有限的系统中,可以通过级联的方式轻松地扩展系统的可用输出IO口数量。同样的也可以使用并转串芯片扩展输入IO口的数量。 这里说一说串转并芯片74HC595和74HC164。 首先来看595芯片,如下图所示,74HC595具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器有相互独立的时钟。数据在SH_

2016-12-02 16:29:13 28998

空空如也

空空如也

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

TA关注的人

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