-
在网上找资料时找到一篇介绍在keil中使用printf()函数的文章,copy到这里,作为备忘。在keil中printf默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,摘抄原因如下:1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1。如果为1则...[详细]
-
引言SPI(SerialPeripheralInterface)是Motorola公司推出的一种同步串行外围接口。该接口由于协议实现简单,传输速度快等优点,已被广泛应用于EEPROM、Flash、实时时钟、A/D转换器以及D/A转换器等芯片的读写。本文根据实际工程中的应用需求,用ARM芯片LPC2378的GPIO来模拟SPI接口,以实现对外围SPI接口器件的操作。其中,D/A转换是...[详细]
-
设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H~59H单元,编出:(1)延时方式;(2)查询方式;(3)中断方式中的一种程序。内容来自单片机之家www.dpj100.com解:IN2的地址为7FFAH,P1.0查询转换结束信号,查询程序如下:ORG0100HMOVR7,#0AHMOVR0,#50HMOV...[详细]
-
1 引 言 环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校...[详细]
-
在全球能源危机凸现的当今社会,LED照明以其绿色环保,高效节能的优势成为当前最具潜力的照明方式之一。LED号称“绿色照明的第四代光源”,目前已开始逐步应用于电信、交通、农业、医学、军事等领域。LED(Light-emittingDiode,发光二极管)是一种固态的半导体组件,能够把电能直接转化为光能。作为一种固体照明光源,LED具有长寿命、高光效、多光色等特性,可在安全低电压下工作,也可连续开...[详细]
-
一:关于处理器的寄存器定义针对处理器的寄存器定义文件是一个汇编文件,包含特定器件上所有特殊功能寄存器的定义。编译时,针对处理器的寄存器定义文件将被编译成需要链接到应用程序的目标文件。例如,在PIC18C452针对处理器的寄存器定义文件中,PORTA定义为:SFR_UNBANKED0UDATA_ACSH'f80'PORTAPORTAbits...[详细]
-
跑马灯实验的工程模板以及具体的工程模板修改步骤我这里就不说了,正点原子教学视频里讲的已经非常清楚了,在这里主要用到的3个文件以及文件中相关函数及寄存器的作用在这里我以注释的形式给出。1.led.h#ifndef__LED_H#define__LED_H#includesys.h//LED端口定义#defineLED0PFout(9) //DS0#def...[详细]
-
7.2时钟三种不同的时钟源可被用来驱动系统时钟(SYSCLK):●HSI振荡器时钟8M●HSE振荡器时钟●PLL时钟这些设备有以下2种二级时钟源:●40kHz低速内部RC(LSIRC)振荡器,可以...[详细]
-
硬件电路图:我的收获:这是STM32数据手册上对TIM3通用定时器复用功能重映象的描述,假设让PA6作为PWM输出,从图中可以看出PA6对应TIM3的通道1,使能TIM3通道1的函数为TIM_OC1Init();1同样的,如果想要使能PA7,它对应的是TIM3的通道2,那么使能通道2的函数便是:TIM_OC2Init()1以此类推,需要注意,使能不同相同定时器不同通道的函数...[详细]
-
在单片机编程中,最主要的是掌握单片机工作的时间节拍,最大限度地利用CPU资源,下面提供一种基于基准定时器进行软件定时、任务执行采用分时复用的方法,规定每个任务执行的时间,执行时间到后切换下一任务。u16Timer_Count=0,Timer_Count_OverFlow=0;u16this_time=0,last_time=0,time_overflow=0;...[详细]
-
0引言 随着通信技术、网络技术的迅速发展,大量网络设备接入网络,互联网用户数量正以几何级数增长。研究表明,IPv4地址空间将在2011年前耗尽,因此IPv4地址资源非常紧缺。SOHO路由器利用私有网络IP地址有效地缓解目前IP地址短缺的危机,为公司、家庭等小型局域网提供高效、廉价的共享上网方案。当前SOHO路由器设计,采用 ARM7TDMI+Clinux设计架构,A...[详细]
-
1.前言嵌入式以太网开发是一个很有挑战性的工作。通过几个月的学习,个人觉得大致有两条途径。第一条途径,通过高级语言熟悉socket编程,例如C#或C++,熟悉bind,listen,connect,accept等函数,在嵌入式系统中应用lwIP协议栈。第二种途径,通过分析嵌入式以太网代码,结合TCPIP协议栈规范逐步实践协议栈代码。第一种途径效率高,开发周期短,编写出来的代码性能稳定,第二种...[详细]
-
一个小的项目,在测试时间和产品量稍微大一些之后,出现了一些莫名其妙的非逻辑错误的Bug(最头疼的是不能每次都能复制出来)。经过修改后,最近一个月的测试都没有出现。本人在这里得到了原子哥和其他朋友的很多帮助,也把自己的一些经验分享给各位,也欢迎大家指正。1.程序偶尔会出现一些Bug,经过output串口信息发现一些堆栈的临时变量被莫名其妙的修改。stm32103rbt6的内存是20K,算比较...[详细]
-
MCU进入低功耗之后,以极低的功耗维持着系统“活着”,但是醒过来是需要一定条件的,比如定个“闹钟”,按键“按一下”等,目前常用的“正常的”唤醒方式有以下几种:1、RTC定时唤醒;2、外部中断唤醒(按键或者通讯唤醒);3、特殊唤醒引脚唤醒(某些引脚具有专门的唤醒功能)。下面,我们再来看一看如何通过RTC和外部中断唤醒MCU。1、RTC定时唤醒依然是从手册中我们可以看到,所有的RTC时间...[详细]
-
Atmel将AVR微控制器的支持范围拓展至交流和无刷直流(BLDC)电机控制应用领域,为这些应用带来了高度灵活且具有成本效益的解决方案。AVR闪存微控制器(FlashMicrocontroller)的卓越性能以及全面特征为设计者提供了最佳解决方案,使他们得以满足与电机控制设计相关的多种技术要求。现有的专用标准产品(ASSP)对于目标应用而言往往过于具体并有限,而将微控制器用...[详细]