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…
FreeModbus 源码:点击下载 线圈BUG解决(后来发现不一定是BUG) 1.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的     usRegAddress++;行注释掉,否则输出线圈0永远无法输出,其它的线圈错位. 2.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的写操作    while循环改加入 usBitO…
RTU精简版本 测试环境:IAR for avr 5.40 + M128 目前只优化了ModBusPort.c和ModBusRTU.c ModBusPort.c     566 bytes of CODE memory (+ 19 bytes shared)   4 bytes of DATA memory (+ 13 bytes shared) ModBusRTU.c      1 677 bytes of CODE memory (+ 14 bytes shared)    821 byte…
本例程下载: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: /*--…
有关Keil MDK 5.0的介绍和下载 http://www.cnblogs.com/worldsing/p/3355911.html 下载地址 点击下载:http://pan.baidu.com/s/1tFEDB…
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…
Qt Creator自带的 QTabWidget控件几个例程 在Qt Windos版本安装后,在Example目录可以找到与QTabWidget相关的工程Demo,如果按默认安装的话他们分别是:   QTabWidget在浏览器的应用,Demo目录:C:\Qt\Qt5.3.1\Examples\Qt-5.3\webkitwidgets\browser     QTabWidget比较单一的应用, Demo目录:C:\Qt\Qt5.3.1\Examples\Qt-5.3\svg\embedded\…
  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…
Visual Studio 2008 .VS2008.VC2008工程源文件配置.编译配置   有时编写代码时,往往存在这样的需求(或是希望有这样的功能):一个工程经过不共同的配置实现不同的版本或是功能,比如做开发包的Dome,一个库文件, 有多个API接口,以lib文件给用户提供时,我们需要提供文档和Demo,你可以一个Demo建立一个工程,但是,像VS2008这样的高级开发工具应该有解决 办法的,关键是你不知道怎么用,在VS2008环境下有这样几种解决办法:   建立一个工作区,在工作区里建…
UCGUI(emWin) 2-D图形库--之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一个空心的,另一个是实心的,用时注意加于区分,另一个值得注意的是绘制模式,GUI_SetDrawMode(),目前emWin5.2有两模式,一个是正常的绘制,另一个是取反的方式绘制.   例程代码下载:3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图.zip   GUI_Get…
在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.26(ucGui)VS2008字符显示   #include "GUI.h" #include "WM.h"   #include "CHECKBOX.h" #include "FRAMEWIN.h" #include "…
笔者上次写了如何用IAR查CPU的字长和数据类长度的方法:点击这里查看 今天试着在Keil MDK 5.0 里查看CPU的字长和数据类长度,打开一个已有的工程,编译并进入Debug,如图1.1所示:                                                图1.1 Keil 进入Debug仿真   打开Watch窗口,View->Watch Windows->Watch 1,点击<Enter expression>并输入sizeof(int),…
用单片机于MRFC522与单片接时,加上485通讯后出现很诡异的像: 只要485芯片上有收到外部发送的信号时RC522就死掉,经过仿真卡在了SPI的收发部分(等待回复) u8 MFRC522WriteByte(u8 Byte) { {int i = 0; while((SPI1->SR&0X02)==0 && i < 0xff) i++;} //等待发送区空 SPI1->DR=Byte; //发送一个byte {int i = 0; while((SPI1->…
阅读前提:假设读者对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是高速…
progisp 2.0 可以下载avr.51等单片机,单击下载                      Superprg  单击下载 Superprg软件志峰公司出的专用软件,配合ZF_209使用, ZF_209卓越的性能是目前已知下载器中速度最快,稳定性最好的下载器.zf-209使用arm芯片无论是编程接口还是usb接口,均使用硬件来实现的,不是使用软件模拟的,由于是采用硬件模式,保证了编程时序的可靠性稳定性. 特点: 1.免驱动即插即用(win7 效果更好) 2.支持芯片多,可编程所有低压…
关于堆和栈已经是程序员的一个月经话题,大部分有是基于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,你会发现…
简单原则少ROM,少RAM,任务完成就让出CPU,调度器描述: 1.按最大任务数轮番调度: 2.任务调用延时接口将让出CPU使用权,进入下一个任务调度: 3.用户任务都处于延时或是不使用CPU运行Idle任务: 4.最大任务数255: 5.任务用独立栈,栈大小由用户自定义: 6.调度器无需初始化,代码为单个C文件,结构简单,代码尺寸小: 7.调度器加3个任务代码尺寸:Code=1428 RO-data=268 RW-data=32 ZI-data=520  软件环境:Keil Mdk 4.7a…
在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    /* 空闲任务栈容量   单…
1.uCOSii V2.52    a.加了7个可以配置的钩子函数宏     #define OS_TASK_CREATE_HOOK_EN    0    /* 任务创建时调用钩子函数      使能 1 / 禁止 0                    */     #define OS_TASK_STAT_HOOK_EN      0    /* 统计任务运行时调用钩子函数  使能 1 / 禁止 0                    */     #define OS_TASK_SW_…
有关于uCos的启动过程讲解有很多文章,这里主要记录已下OSStartHighRdy()在stm32下是怎么写和运行的:   stm32上电   运行SystemInit(): 配置时钟,这个不要也可以,不要就是8MHz时钟   运行main() : 调用OSInit(), OSTaskCreate()一个任务,OSSart()                   OSInit():至少做3件事1.初始化零散的uCos全变量:2.把任务控制块.事件控制块链表化:3.创建已空闲任务IDLE(系统的…
  老外写的C书,看了你会有一种哇塞的感觉,这里提供PDF扫描版的下在,包含数内的例程,请大家支持原版!! C Primer Plus(第五版)中文版.pdf  下载地址:http://pan.baidu.com/s/1l9aXq 以下是内容截图    …
Design -> Netlist for project -> Protel…
在Qt里按钮控件默认对应一个on_pushButton_clicked()成员,如果想用点击信号,在代码中实现on_pushButton_clicked()成员即可. 最近看了一段代码,里面并没有connect函数,只定义了pushbutton,也没有看到调用on_pushButton_clicked()的语句,那么难道说只要点了button,就会自动调用on_pushButton_clicked()的内容吗? 这种写法是QtCreator默认的,也就是它背后帮你完成了connect. 比如对象…
w.setWindowFlags(Qt::WindowMinimizeButtonHint); //禁止最大化按钮 w.setFixedSize(1024,587);//固定窗口大小…
此版本仅供学习,请大家支持正版软件!! AutoFlowChart v3.1软件下载: http://url.cn/OUK17C 支持导出:word.visio.图片格式.   例如:main.c #include "stdio.h" void main () { int s ; void f(int s); while (1) { printf("input a natural num :"); scanf("%d" ,&s); if…
Shift + R 切换三种布线模式 (忽略, 避开或推挤) Shift + E 触发电气格点开/关 Shift + B 建立查询 Shift + PgUp 放大到最小的递增 Shift + PgDn 缩小到最小的递增 Ctrl + PgUp 放大到400% Ctrl + PgDn 适合文档内的查看 Ctrl + End 工作台跳转到绝对的原点 Alt + End 刷新当前的层 Alt + Insert 粘贴在当前层 Ctrl + G 弹出捕捉格点对话框 G 弹出捕捉格点菜单 N 移动一个元件时…
msp430的两本书,pdf版 MSP430系列单片机接口_技术及系统设计实例 MSP430系列16位超低功耗单片机原理与应用 点击此处下载 ourdev_528863.pdf(文件大小:4.21M) (原文件名:MSP430系列16位超低功耗单片机原理与应用.pdf) 点击此处下载 ourdev_528864.pdf(文件大小:14.98M) (原文件名:MSP430系列单片机接口_技术及系统设计实例.pdf)…