msp430的两本书,pdf版 MSP430系列单片机接口_技术及系统设计实例 MSP430系列16位超低功耗单片机原理与应用 点击此处下载 ourdev_528863.pdf(文件大小:4.21M) (原文件名:MSP430系列16位超低功耗单片机原理与应用.pdf) 点击此处下载 ourdev_528864.pdf(文件大小:14.98M) (原文件名:MSP430系列单片机接口_技术及系统设计实例.pdf)…
  emWin for 12864 并口移植 源代码下载:RTX_emWin5.24_Keil_VS2008-20141122.zip   硬件环境: CPU: stm32f103ve LCD:st7920控制器 12864 并口   软件环境: Keil MDK4.74 VS2008 emWin5.24   使用rtx操作系统     1.实现emWin5.24在keil 和vs2008同一代码的工程,vs2008目录实现在FMC的官方模拟器上的模拟,Keil目录实现在stm32f103ve…
UCGUI(emWin) 2-D图形库--之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一个空心的,另一个是实心的,用时注意加于区分,另一个值得注意的是绘制模式,GUI_SetDrawMode(),目前emWin5.2有两模式,一个是正常的绘制,另一个是取反的方式绘制.   例程代码下载:3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图.zip   GUI_Get…
本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip   在emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值.然而,有时候这会是件困难的事.通常,较为容易(也更为有效)的是调用一个例程显示所需结 构的数值. emWin 支持各种十进制.十六进制和二进制输出.本章将对这些例程进行逐一描述.所有函数不需要使用浮点库,并对速度和大小进行了优化.当然"Sprintf"可以用于任何系统.使 用本章介绍的例程,有时可以简化操作,节省 ROM…
在超MINI核心板 stm32F103C8最小系统板上调试Usart2功能:用Jlink 6Pin接口连接WStm32f103c8的Uart2,PC机向mcu发送数据,mcu收到数据后数据加1,回传给PC,并把 D1 指示灯状态取反. 硬件连接: 1.R27 悬空不焊接: 2.将P输出TTL接口的TX连接到超MINI核心板 stm32F103C8最小系统板的RX2; 3.将P输出TTL接口的RX连接到超MINI核心板 stm32F103C8最小系统板的TX2; 串口配置uart2.c: /*--…
阅读前提:假设读者对CAN总线和485总线有一定了解. RX485连接CAN用法提出背景: 在一般情况下只能是CAN对CAN 485对485, 但是在调试过程中难免对出现设备没有CAN接口,或是没有485接口,或是端口不够用,导致无法进行调试工作.比如项目初期画的电路可能少CAN接口,或是少485接口,开发过程中由于设备的增加,导致端口不够用或是接口不兼容.PLC一般只有485或422接口.连在CAN行不行呢?   接下来看看CAN 的两种电平标准:   在看看485电平: •RS-485总线上…
stm32可选的时钟源 在STM32中,可以用内部时钟,也可以用外部时钟,在要求进度高的应用场合最好用外部晶体震荡器,内部时钟存在一定的精度误差. 准确的来说有4个时钟源可以选分别是HSI.LSI.HSE.LSE(即内部高速,内部低速,外部高速,外部低速),高速时钟主要用于系统内核和总线上的外设时钟.低速时钟主要用于独立看门狗IWDG.实时时钟RTC. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz,上电后默认的系统时时钟 SYSCLK = 8MHz,Flash编程时钟. ①.HSE是高速…
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的.   那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘:     刚接手STM32时,你只编写一个 int main() { while(1); } BUILD://Program Size: Code=340 RO-data=252 RW-data=0 ZI-data=1632  编译后,就会发现这么个程序已用了1600多的RAM,要是在51单片机上,会心疼死了,这1600多的RAM跑哪儿去了, 分析map,你会发现…
在Altium Designer画图过程中难免会多出单元电路,或是测试电路,特别是第一版时,有部分元件不用焊接   这时给采购.或是生产时有必要注明哪些元件不焊接,哪些元件不采购.有两种方法可以过滤: 1.将元件属性的Value项值写为NC,即:No Connect:但是自建的库或非标的库无此项.且再次需要焊机或配置是不得重新输入比较麻烦:     2.将元件属性的Type项值写为Standrad(NO BOM),即输出到BOM:也可以批量操作…
在大多OS里都存在Idle线程或任务,同样uCos也不例外,为什么估计很少有人细研究.为什么设立Idle? 能不能去了? 首先看看uCos中关于Idle的代码做个介绍: config.h里对Idle的配置: #define OS_LOWEST_PRIO              7     /* 最低优先级,OS_LOWEST_PRIO即空闲任务优先级(0 ~ 63)    */      #define OS_TASK_IDLE_STK_SIZE    32    /* 空闲任务栈容量   单…
有关Keil MDK 5.0的介绍和下载 http://www.cnblogs.com/worldsing/p/3355911.html 下载地址 点击下载:http://pan.baidu.com/s/1tFEDB…
在Qt里按钮控件默认对应一个on_pushButton_clicked()成员,如果想用点击信号,在代码中实现on_pushButton_clicked()成员即可. 最近看了一段代码,里面并没有connect函数,只定义了pushbutton,也没有看到调用on_pushButton_clicked()的语句,那么难道说只要点了button,就会自动调用on_pushButton_clicked()的内容吗? 这种写法是QtCreator默认的,也就是它背后帮你完成了connect. 比如对象…
SysTick是CM内核独立的定时器,时钟可以用内核内部的,也可以用芯片厂家(ST)的时钟,参考<Cortex-M3权威指南>的第13章: 另外也可以考<STM32F10xxx Cortex-M3 programming manual.pdf>第4章CM3系统外设,从手册来看,ST应该只提供了内核外部时钟,而外部时钟又分成两种:HCLK/8 和 HCLK, ST官方提供了库直接可以操作SYSTICK,但不同的版本使用起来有些区别: 在V2.0的版本中对SysTick的操作是使用的s…
74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准. 74HC595是具有8位移位寄存器和一个存储器,三态输出功能. 移位寄存器和存储器是分别的时钟. 数据在SHcp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STcp(存储器时钟输入)的上升沿输入到存储寄存器中去.如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲. 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7'),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输…
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式:温度测量范围为-55℃-+125℃,可编程为9位-12位A/D转换精度,测温分辨率可达0.0625℃.主机控制DS18B20完成温度转换必须经过三个步骤:初始化.ROM操作指令.存储器操作指令.必须先启动DS18B20开始转换,再读出温度转换值.本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符…
存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有"读"."写"."加值"."减值(含传输和存储)"四种,对控制块的操作只有"读"和"写"两种. S50和S70的每个扇区有两组密码KeyA和KeyB,所谓的"条件"就是针对这两组密码而言,包括"验证密码A可以操作(KeyA)"."验证密码B可…
射频识别系统中由于卡片和读写器并不是固定连接为一个不可分割的整体,二者在进行数据通讯前如何确信对方的合法身份就变得非常重要.根据安全级别的要求不同,有的系统不需认证对方的身份,例如大多数的TTF模式的卡片:有的系统只需要卡片认证读写器的身份或者读写器认证卡片的身份,称为单向认证:还有的系统不仅卡片要认证读写器的身份,读写器也要认证卡片的身份,这种认证我们称为相互认证.Mifare系列卡片中的认证就是相互认证. 最常见的认证是使用密码或者叫口令,就像特务见面,只要说对了口令(密码)就可以确信对方是…
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfire等,由于Mifare的巨大影响力,业内有时把其它公司生产的遵守ISO14443A标准的射频卡也称为"Mifare",尤其是Mifare S50卡片,几乎就是ISO14443A标准的代言人. 至于"Mifare"这个名字的由来,据说1998年Philips收购了瑞士的…
从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出在读卡器上,是读卡器对卡片识别号采用了不同的输出格式.下面以第7节中提到的ID卡(其卡号是16进制的2100A5EAD9H)为例,说明常见的识别号输出格式. 1.ASCII码与16进制真值变换 在嵌入式系统里,数据的存储一般以字节为单位,字节的表示范围为16进制的00-FFH,这就是16进制的真值.…
半双工(HDX,Half Duplex)技术是ISO11784/11785中规定的另一种标签与读写器之间的通讯方式.读写器先打开射频场对标签充电以激活标签,然后关闭磁场,标签在读写器磁场关闭的情况下向读写器传送数据.不过HDX虽然是在动物标签标准中规定,但似乎更多的应用于和动物联系不大的工业识别领域.这也没什么大惊小怪的,标准是标准,实际应用中适合的才是最好的,就像信鸽虽然是动物,但许多信鸽的脚环识别号其实是ID64格式. 与全双工(FDX)相比,HDX 通常识别能力更强,因为HDX读写器的射频…
动物标签也是工作在TTF模式的ID(Identification)卡.之所以通常称为动物标签,估计是因为一来和识别人的ID卡相区分,二是因为动物不如人听话,人的ID卡可以做成卡片形状拿在手上,而动物不会用四肢持卡,要么做成小玻璃管状用设备注射到皮下,例如小狗小猫等宠物,要么做成耳钉订在耳朵上,例如猪耳标,要么做成环状套在腿上,例如信鸽的脚环. 动物识别标签的通讯方式分为全双工(FDX)和半双工(HDX),全双工是标签回送数据时读卡器产生的射频场不消失,半双工是标签回送数据时读卡器产生的射频场消失…
ID(Identification)是识别的意思,ID卡就是识别卡.ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡. 射频ID卡一般都工作在TTF模式,进入射频场得电后不停地发送自己的识别号.最初识别卡是用来识别人的,用5个字节40位二进制数表示,可以识别大约一万亿人,估计是因为考虑到一万亿太多了,一般ID卡使用时只使用低位的4个字节,而把最高位的一个字节作为厂家标识或版本号使用.这样4字节32位二进制数可以识别43亿人,在…
通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言和卡片先发言.前一种叫Reader Talk First,简称为RTF;后一种叫Tag Talk First,简称为TTF. 我们知道,卡片从读写器产生的射频场获得工作时需要的能量,一般认为应该是读写器主动,卡片被动才对,这也是人之常情.所以多数功能稍复杂的卡片都是采用RTF模式,即读写器问,卡片回…
正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能卡特有的问题.在接触式智能卡的操作中是不存在冲突的,因为接触式智能卡的读写器有一个专门的卡座,而且一个卡座只能插一张卡片,不存在读写器同时面对两张以上卡片的问题.常见的非接触式智能卡中的防冲突机制主要有以下几种: 1.面向比特的防冲突机制. ISO14443A中使用这种防冲突机制,其原理是基于卡片有…
1,简介 网站地址:http://www.modbustools.com/ 该网站提供了几个软件工具,可以运行于windows 2000/XP/Vista/7环境下,用来测试和仿真Modebus设备. Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备.该软件支持Modbus RTU.ASCII.TCP/IP. Modbus Slave: Modbus从设备仿真器,可以仿真32个从设备/地址域.每个接口都提供了对EXCEL报表的OLE自动化支持. WSMBT :M…
简介: 支持所有带SWIM接口的STM8系列单片机 支持所有带SWD接口的STM32系列单片机 完全兼容Keil,STVP,STVD,IAR,COSMIC,STM32 ST-LINK Utility! 支持固件自动升级,以确保 ST 公司产品后续支持. 编程功能:可烧写FLASH ROM.EEPROM.AFR等. 仿真功能:支持全速运行.单步调试.断点调试等各种调试方法,可查看IO状态,变量数据等等. 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快! 编程性能:采用U…
FreeModbus 源码:点击下载 线圈BUG解决(后来发现不一定是BUG) 1.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的     usRegAddress++;行注释掉,否则输出线圈0永远无法输出,其它的线圈错位. 2.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的写操作    while循环改加入 usBitO…
前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或"1".那么如何用高低电平表示数据"0"或"1"呢? 最简单的办法就是用高电平表示"1",用低电平表示"0",这种代码叫全宽码,如下图所示: 这种编码方式存在的最大缺陷就是数据容易失步.上图的数据我们看的很清楚,但是想想如…
无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点.无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触.非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡片自身没有电源而又不和读写器接触,那么电源从哪里来的呢? 其实回答这个问题非常简单,那就是电磁感应.读写器产生一个电磁场,卡片上的天线是一个LC振荡电路,且这个振荡电路的共振频率和读写器电磁场的频率一致.当卡片进入读写器的射频场,卡上的振荡电路起振,电路振荡意味着有电子的流动,有电子的流动就可以用二…
eMbPoll()的作用是FreeMod协议通信过程中不断查询事件对列有无完速数据桢,并进行地址和CRD验证,最后运行和回复主机. 为了减小代码尺寸对eMbPoll进行改进: 原版: 1:  2: eMBErrorCode 3: eMBPoll( void ) 4: { 5: static UCHAR *ucMBFrame; 6: static UCHAR ucRcvAddress; 7: static UCHAR ucFunctionCode; 8: static USHORT usLengt…