-
本文共有三个内容:一、电阻触摸屏的原理;二、XPT2046的控制字与数字接口;三、程序源码讲解(参考正点原子的代码)一、电阻触摸屏的原理,上图:图上的文字介绍了触摸的原理,下面给总结一下触摸的原理:触摸屏工作主要是两个电阻屏(上下两层)在工作,如上图,当某一层电级加上电压时,会在该网络上形成电压梯度。如果有外力使得上下两层在某一点接触,则在未加电压的那一层可以测得接触点的电压,...[详细]
-
STC15系列单片机内部集成了大容量的EEPROM,与其程序空间是分开的。利用ISP/IAP技术可将内部DataFlash当EEPROM,擦写次数在10W次以上。EEPROM可分为若干个扇区,每个扇区包含512字节。使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同扇区,不一定要用满。数据存储器的擦除操作是按扇区进行的。EEPROM可用于保存一些需要在应用中修改并且...[详细]
-
这几天看了下mbed的源码,给上层应用调用的接口封装的还是不错的。代码质量比较高,注释也很详细,文档和例程比较全。但是驱动层的程序全是C语言编写的,代码质量就没有那么高了,注释比较少而且不规范,比较怀疑mbed的稳定性。mbed的实时内核是用的RTX5,文件系统用的FatFs,还有一些开源的协议栈,整套系统比较繁杂。mbed框架是为物联网设备开发的,工业控制级别的产品可以...[详细]
-
很多人在写简单的裸机代码或分析uboot时,常常遇到adr和ldr指令。却分不清这2者的区别,现在谈谈adr与ldr指令。先写启动代码start.S。.text.globl_start_start:ldrr0,testadrr0,testldrr0,=testnoptest:nopMakefile文件内容如下:all:start...[详细]
-
startup_stm32f10x_cl.s互联型的器件,STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd_vl.s大容量的STM32F100xxstartup_stm32f10x_ld.s小容量的STM32F101xx,S...[详细]
-
裸机程序中可能用到的文件以及函数#include“system.h”/**************************************************************************************************************************函数:voidSetEINT_TriggerMode(u8EINT0_N,u8...[详细]
-
之前做的是仿pioneer3at的机器人,做过两个版本,第一版完全仿的,国内机械加工,很多厂不愿意加工这种小活,加工出来的精度不够,很多问题第二版做出来的问题是带传动,当负载过大时,会产生跳齿等问题,自己画图生产,当时也没认真做效果只能说一般电机使用的是富兴公司的伺服电机第三版由4个转向电机4个轮毂电机及4个编码器组成在linux控制电机程序为:https://downl...[详细]
-
单片机最小系统统是指能让单片机运行起来的所需的最少器件构成的电路系统。如果您构建的最小系统作为研究、学习使用,应该满足以下要求:1.有电源;2.有单片机主芯片;3.有程序下载电路;4.有时钟源电路;5.有复位电路;6.有I/O口的负载电路。这样的系统才能满足您下载程序和调试程序的要求。下图是AT89S51/52单片机的最小系统电路原理图。电源部分:从电脑USB接口DC5V取电...[详细]
-
“引言随着芯片规模的越来越大、资源的越来越丰富,芯片的设计复杂度也大大增加。事实上,在芯片设计完成后,有时还需要根据情况改变一些控制,这在使用过程中会经常遇到。这时候如果再对芯片设计进行改变将是很不可取的,因为需要设计人员参与这种改变,这无论是对设计者还是用户都是不能接受的。于是就有必要让这种可以改变的简单控制在芯片设计时就存在,而且同时还应该使这种改变相对容易,比较通用,并...[详细]
-
ARM有16个32位的寄存器(r0到r15)。r15充当程序寄存器PC,r14(linkregister)存储子程序的返回地址,r13存储的是堆栈地址。ARM有一个当前程序状态寄存器:CPSR。一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irqARM的子程序调用是很快的,因为子程序的返回地址不...[详细]
-
准备分析经过了对NandFlash的操作现在可以熟练的读NandFlash了,这时候单独将启动代码整理成BL1就显得很必要了,不然整个程序会显得很乱,以后的裸机就可以只考虑自己,不用考虑启动的事了。资源工具同《S5PV210的LED应用(一)》NandFlash:K9GAG08U0F(2G)对应代码:9.bl1着手写程序(1)在工程目录添加一个新...[详细]
-
以前对MPLAB的不人性化设计发过牢骚,今天从网上看到了一篇文章,教你如何设置,设置完后,人性化多了。在此分享一下:原文:让你的MPLAB好用起来!很多人抱怨,MPLAB编辑功能不方便,很多功能没有。特别是你如果第一次接触MPLAB的时候,觉得界面太不友好,其实不然。。。。1.实现效果1:双击选取单词,再次双击选取整行。——打开edit\properties菜单,选CFil...[详细]
-
7.1定时器/计数器7.1.1定时器/计数器的组成7.1.2定时器/计数器的工作原理1、定时方式定时方式时,T记录80C51内部振荡器输出的脉冲(机器周期信号)个数。每一个机器周期使T0或T1的计数器增加1,直至计满回零自动产生溢出中断请求。2、计数方式计数方式时,T的功能是计来自T0(P3.4)T1(P3.5)的外部脉冲信号的个数。7.1.3定时器/计数器的控...[详细]
-
GPIO(GeneralPurposeI/OPorts)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态——是高电平还是低电平。三星Exynos4412,它有304个GPIO,分为GPA0、GPA1、GPB、GPC0、GPC1等共37组。可以通过设置寄存器来确定某个引脚用于输入、输出还是其它特殊功能。比如可以设置GPC0、GPC...[详细]
-
方式0为固定波特率:B=fosc/12方式2可选两种波特率:B=(2SMOD/64)×fosc方式1、3为可变波特率,用T1作波特率发生器。B=(2SMOD/32)×T1溢出率T1为方式2的时间常数:X=28-t/T溢出时间:t=(28-X)T=(28-X)×12/foscT1溢出率=1/t=fosc/波特率B=(2SMOD/32)×...[详细]