嵌入式系统
kevinhg
http://blog.csdn.net/kevinhg
展开
-
BAD PASSWORD 解决方法
在Linux中使用passwd设置密码时,常常会出现“BAD PASSWORD”的错误,该如何解决呢?可参考该文档!原创 2010-09-13 18:27:00 · 57435 阅读 · 5 评论 -
分辨率与精度的区别
最近做了一块板子,当然考虑到元器件的选型了,由于指标中要求精度比较高,所以对于AD的选型很慎重。很多人对于精度和分辨率的概念不清楚,这里我做一下总结,希望大家不要混淆。我们搞电子开发的,经常跟“精度”与“分辨率”打交道,这个问题不是三言两语能搞得清楚的,在这里只作抛砖引玉了。简单点说,“精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。从定义上看,这两个量应该是风马牛不相及转载 2012-08-11 21:54:16 · 1343 阅读 · 0 评论 -
C51位运算应用技巧
位运算应用口诀:清零取位要用与,某位置一可用或,若要取反和交换,轻轻松松用异或!移位运算要点1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。2 "3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。位运算符的应用转载 2012-08-16 21:31:33 · 5406 阅读 · 0 评论 -
虚拟机下Linux安装图解之二:虚拟机的创建
虚拟机下Linux安装图解之二:虚拟机的创建原创 2010-09-15 16:10:00 · 954 阅读 · 0 评论 -
如何让Keil MDK兼容Keil C51?
原来用51单片机,使用的是Keil C51 uVision V4.02;最近搞STM32,装了keilMDK uVision V4.23。原来我是先装keilC51,后装keilMDK的,装在不同的目录里,装完之后不管是51工程还是stm32工程默认都会用keilMDK打开,这样打开51工程时会出错,所以要打开51的工程必须先打开keilC51程序,然后再程序里打开工程文件。下面这个方法可原创 2013-11-26 22:23:09 · 20033 阅读 · 4 评论 -
ARM7还是ARM9?uCOS还是Linux?
一. 谈谈ARM7与ARM9的区别:本文是写给准备学习ARM技术,而又没想好要学ARM7还是ARM9或者对ARM7与ARM9的区别不是很了解的初学者。希望本文对你们有点用处。由于职业的关系,经常会回答一些ARM初学者的问题,虽然问题千奇百怪,但以下两个问题绝对很有代表性。ARM7和ARM9都有些什么区别?我准备学ARM,但不知是选ARM7还是ARM9好? 也许这些问题在大虾们的转载 2013-12-16 23:20:41 · 12370 阅读 · 0 评论 -
STM32中GPIO的8种工作模式!
1、GPIO_Mode_AIN 模拟输入2、GPIO_Mode_IN_FLOATING 浮空输入3、GPIO_Mode_IPD 下拉输入4、GPIO_Mode_IPU 上拉输入5、GPIO_Mode_Out_OD 开漏输出6、GPIO_Mode_Out_P转载 2013-12-22 22:54:39 · 101942 阅读 · 13 评论 -
STM32时钟配置方法详解
一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频输出,其时钟输入源可转载 2013-12-24 00:38:34 · 145916 阅读 · 15 评论 -
sprintf函数的用法
1、该函数包含在stdio.h的头文件中。#include 2、sprintf与printf函数的区别sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。3、sprintf函数的格式:int spri原创 2014-10-23 23:38:16 · 83212 阅读 · 2 评论 -
标志位和中断位的区别:USART_ClearFlag和USART_ClearITPendingBit
实际上两个函数实现的功能是一样的,都是清除相对应的标志位,只是标志位和中断位含义不一样,是标志位但是不一定会产生中断。例如:#define ADC_IT_EOC ((uint16_t)0x0220)#define ADC_IT_AWD ((uint16_t)0x014原创 2014-10-23 10:37:05 · 23706 阅读 · 1 评论 -
STM32串口第一个字节丢失问题的分析过程
STM32 串口 发送 必须 先检测 状态,否则 第一个 字节 无法 发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff转载 2014-11-10 23:39:19 · 27052 阅读 · 7 评论 -
关于STM32与SD卡通信的一些思考与总结
SD的驱动和应用困扰了我很久,寒假的时候看到SD简化版物理层协议的时候就傻掉了,看到SD的驱动快3000行的代码也动摇了。这几天几种地看了一下SD卡的相关内容,总结了一些体会,感觉也没有那么恐怖了。我决定从分层上来讨论SD的驱动和应用,因为这样可以构建一个清晰的逻辑,且不知哪位计算机大师曾说过:一切计算机问题都可以用分层的方法来解决。我自己把SD卡从驱动到应用共分为4层,从下至上依次为:驱动层转载 2014-11-11 22:56:11 · 7390 阅读 · 0 评论 -
STM32中关于串口通信的printf()函数重定向问题
在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。2、在main文件中重原创 2014-10-12 12:42:36 · 19584 阅读 · 3 评论 -
关于STM32的变量定义
今天调试程序时,想观察一下变量的情况,突然发现平时经常移植别人程序时最容易忽略的一个致命问题,那就是忽略变量类型,这里有必要给大家一定知识啦,都是库里面的,非原创!3.0以后的版本中使用了CMSIS数据类型,变量的定义有所不同,但是出于兼容旧版本的目的,以上的数据类型仍然兼容。CMSIS的IO类型限定词如表 5‑7所示,CMSIS和STM32固件库的数据类型对比如表 5‑8所示。这些数转载 2014-10-15 19:03:57 · 13425 阅读 · 0 评论 -
STM32串口发送中断
SECTION 11234567891011121314151617181920212223242526272829303132333435/*调试STM32串口过程中发现一个奇怪的问题,初始化串口1口,使能串口发送转载 2014-10-14 22:00:59 · 60192 阅读 · 5 评论 -
STM32串口中断接收方式详细比较
本例程通过PC机的串口调试助手将数据发送至STM32,STM32通过SP3232芯片采用中断接收方式完成,然后接收数据后将所接收的数据又发送至PC机。实例一:void USART1_IRQHandler(u8 GetData){ u8 BackData;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //中断产转载 2014-10-17 14:54:55 · 21604 阅读 · 0 评论 -
STM32中断优先级概念
一:综述STM32 目前支持的中断共为 84 个(16 个内核+68 个外部),16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。二:优先级判断STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两原创 2014-10-24 11:09:03 · 6949 阅读 · 0 评论 -
AD数据采集的“数字滤波”:10个“软件滤波程序”
在AD采集中经常要用到数字滤波,而不同情况下又有不同的滤波需求,下面是10种经典的软件滤波方法的程序和优缺点分析:1、限幅滤波法(又称程序判断滤波法) 2、中位值滤波法 3、算术平均滤波法 4、递推平均滤波法(又称滑动平均滤波法)5、中位值平均滤波法(又称防脉冲干扰平均滤波法) 6、限幅平均滤波法 7、一阶滞后滤波法 8、加权递推平均滤波法 9、消抖滤波法转载 2012-08-09 20:39:35 · 6394 阅读 · 0 评论 -
ads1115寄存器操作
ADS1115的操作是IIC,主要分为三部分:第一部分:write config register1 0x90 最后一位是R/W位,高为读,低为写2 0x01 指向配置寄存器3 开始设置配置寄存器的参数,根据自己的需要第二部分:write to pointer register1 0x90 同上2 0x00 指向转换寄存器第三部分:re原创 2012-08-05 10:00:39 · 9529 阅读 · 5 评论 -
虚拟机下Linux安装图解之一:VMware Workstation的安装
虚拟机下Linux安装图解之一:VMware Workstation的安装原创 2010-09-15 13:07:00 · 1538 阅读 · 0 评论 -
虚拟机下Linux安装图解之四:VMware Tools 的安装
虚拟机下Linux安装图解之四:VMware Tools 的安装原创 2010-09-17 12:51:00 · 1290 阅读 · 2 评论 -
关于Linux发行版本RedHat9中文输入法使用问题的说明
关于Linux发行版本RedHat9中文输入法使用问题的说明,有其它问题请在回帖中说明!原创 2010-09-16 16:58:00 · 1792 阅读 · 0 评论 -
虚拟机下Linux安装图解之三:Linux发行版本之Red Hat 9 安装
虚拟机下Linux安装图解之三:Linux发行版本之Red Hat 9 安装原创 2010-09-17 12:10:00 · 911 阅读 · 0 评论 -
Vmware Tools安装之Ubuntu7.10问题解决--持续更新中
Vmware Tools安装之Ubuntu7.10问题解决原创 2010-09-25 17:40:00 · 951 阅读 · 0 评论 -
Linux USB Driver Basics
Drivers are software components that operating systems use to provide hardware specific services to applications. This webpage attempts to document the basics of USB drivers on Linux. The goal here is to provide you with a basic understanding of how USB de转载 2010-09-28 23:35:00 · 1543 阅读 · 0 评论 -
把脉Linux上USB数据流
把脉Linux上USB数据流!转载 2010-09-30 22:37:00 · 2434 阅读 · 0 评论 -
Windows、VMware、Linux及开发板间的网络连接
当主机与开发板需要连接,而且主机还要能够连接外网时,该怎么办?查阅了网上的一些资料,发现都是把主机和开发板以桥接的方式直连,这样当然没问题,但是想要上外网就不行了。原创 2010-10-09 19:43:00 · 3419 阅读 · 0 评论 -
存储格式之大端小端详解
最近有同学问到大端格式和小端格式的问题,碰巧看到该文档,写的很好!地址:http://blog.csdn.net/dandycheung/archive/2010/09/13/5881620.aspx转载 2010-10-14 10:20:00 · 1226 阅读 · 0 评论 -
ADS1.2安装要点
ADS1.2安装其实很简单:一、双击 SETUP.EXE,一路NEXT,直到安装完成。二、将文件夹CRACK下的文件LICENSE.DAT拷贝到安装目录下的文件夹licenses下;三、找到安装目录下的bin目录下的register.bat文件,双击运行就OK啦!原创 2011-06-10 09:40:00 · 1173 阅读 · 0 评论 -
ADS与RealView MDK
在 ARM + Linux 培训班学习,讲师一般首先讲解用 ADS 或 RealView MDK 去调试 ARM 开发板。原因在于:1、掌握 ARM 体系结构。ARM 是一种计算机,掌握其体系结构也就是掌握ARM的工作原理。在大学里一般会开设《微机原理》这门课程,讲解x86计算机的工作原理,并学习x86汇编语言。因为ARM与x86体系结构上的不同,所以学习ARM+Linux之前,要首先掌握AR转载 2011-06-10 09:45:00 · 2488 阅读 · 2 评论 -
双向口和准双向口操作的不同!
在最初的51系列单片机中,P0口:双向8位三态I/O口;P1口:准双向8位I/O口;P2口:准双向8位I/O口;P3口:准双向8位I/O口。这里特别要主要准双向与双向三态I/O的区别: P1口,P2口,P3口是3个8位准双向的I/O口,各口线在片内均有固定的上拉电阻,当这三个准双向I/O口作输入口使用时,要想该口先写1,另外准双向I/O口无高阻的“浮空”状态。 而双原创 2012-08-02 20:44:34 · 6398 阅读 · 1 评论 -
液晶OCM12864,结构体,枚举,指针,规范化和模块化编程
来自:http://www.eeworld.com.cn/mcu/2011/0804/article_4786.html1.首先来看看枚举和结构体的使用吧/*****************************************************///使用平台:keil3以上版本//程序功能:配置LCD选屏,LCD写入数据的参数配置,以及LCD函数声明//作者:转载 2012-08-04 18:41:47 · 2076 阅读 · 0 评论 -
51单片机模块化编程初识
在51单片机C语言编程中,为了提高程序的可移植性,有必要用可移植的变量类型的别名进行编程。把以下内容保存到编程软件的Include目录,并保存为了mytype.h文件. 如果你用的是Keil,这个目录可能就是:Keil\C51\INC#ifndef _MYTYPE_#define _MYTYPE_typedef unsigned int uint16;typedef uns转载 2012-08-04 18:34:54 · 5513 阅读 · 1 评论 -
共阴和共阳数码管编码表
1、共阳: char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};2、共阴: char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,原创 2012-08-02 21:57:29 · 162835 阅读 · 2 评论 -
ADC0832双通道实现AD电压转换
很多人在使用ADC0832的时候不知怎么实现双通道AD转换,下面我将简单介绍一下,附有程序和仿真电路图。ADC0832使用介绍:ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。转载 2012-08-06 11:59:38 · 39978 阅读 · 2 评论 -
如何解决Keil5打红叉的问题
很多人换到Keil5,可能会遇到上图这个问题,这是keil新增的同步查错功能。一般情况下大家的项目编译通过了,也可以仿真运行了,以至于这些红叉看起来多余,实在是别扭。如何解决掉这些红叉呢?最好的办法就是关掉这个功能:Dynamic Syntax Checking。具体做法是 Edit - Configurations - Text Completion 然后可以看到左下角有一个 Dynami原创 2015-04-28 17:57:42 · 17548 阅读 · 0 评论