在超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: /*--…
本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip   在emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值.然而,有时候这会是件困难的事.通常,较为容易(也更为有效)的是调用一个例程显示所需结 构的数值. emWin 支持各种十进制.十六进制和二进制输出.本章将对这些例程进行逐一描述.所有函数不需要使用浮点库,并对速度和大小进行了优化.当然"Sprintf"可以用于任何系统.使 用本章介绍的例程,有时可以简化操作,节省 ROM…
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\…
STM32的IAP功能确实方便,以前对此如何实现有所了解,但是一直没去测试,这两天来练了下,可谓困难重重,搞了两天问题也一一解决,下面做些简要的笔记 IAP就是在线应用编程,方便程序升级,可以不用打开产品,直接通过串口升级,那么就需要一个引导程序(大神们喜欢称bootload),一个APP程序(实际产品的工作程序) 减小测试难度,我设计了3个程序,一个bootload程序,一个LED闪烁程序,一个KEY+LED点动程序,我的目的就是用两个不一样的APP程序,互相升级,方便验证结果 我手里的开发板…
前一段时间,一位博友发邮件给我.他跟我讲说没太看懂<化繁为简系列原创教程 - 通信专题 - 串口类CxComm的使用>,请我做一个DEMO工程给他.我抽了一天时间编写并上传了一个DEMO工程,后来觉得DEMO仅仅是点到即止,不如做一个通用串口工具.于是,我抽了一周时间编写并上传了一个串口助手软件.请大家不吝下载使用,并提出意见和建议. 下载 Sample using libComm - v1.1 For WinXP 下载 Sample using libComm - v1.1 For WinX…
UCGUI(emWin) 2-D图形库--之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一个空心的,另一个是实心的,用时注意加于区分,另一个值得注意的是绘制模式,GUI_SetDrawMode(),目前emWin5.2有两模式,一个是正常的绘制,另一个是取反的方式绘制.   例程代码下载:3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图.zip   GUI_Get…
用单片机于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->…
stm32可选的时钟源 在STM32中,可以用内部时钟,也可以用外部时钟,在要求进度高的应用场合最好用外部晶体震荡器,内部时钟存在一定的精度误差. 准确的来说有4个时钟源可以选分别是HSI.LSI.HSE.LSE(即内部高速,内部低速,外部高速,外部低速),高速时钟主要用于系统内核和总线上的外设时钟.低速时钟主要用于独立看门狗IWDG.实时时钟RTC. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz,上电后默认的系统时时钟 SYSCLK = 8MHz,Flash编程时钟. ①.HSE是高速…
  老外写的C书,看了你会有一种哇塞的感觉,这里提供PDF扫描版的下在,包含数内的例程,请大家支持原版!! C Primer Plus(第五版)中文版.pdf  下载地址:http://pan.baidu.com/s/1l9aXq 以下是内容截图    …
有关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…
FreeModbus 源码:点击下载 线圈BUG解决(后来发现不一定是BUG) 1.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的     usRegAddress++;行注释掉,否则输出线圈0永远无法输出,其它的线圈错位. 2.eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )中的写操作    while循环改加入 usBitO…
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…
查看UART在硬件上的信息,阅读JZ2440原理图可以看到: JZ2440开发板的UART0是可以跟USB相接的,用于打印调试,UART1,UART2两个串口用来外接模块.所以本文仅对UART0进行操作. 从上图可以看到,UART0的TXD0和RXD0对应GPH2和GPH3,硬件上获取的信息大概就就是这些,接下来对芯片手册的UART部分进行分析: 首先需要设置UART0的TXD0和RXD0引脚,对应的GPHCON,GPHDAT,GPHUP寄存器见下图: GPHCON: 将GPH2和GPH3分别设…
买了一个开发板学习FPGA,找到的各种东西就记录在这个博客里了,同时也方便把自己不会的问题找到的结果记录一下,都是自己手打,所以可能说的话不那么严谨,不那么精准,看到的人要带着自己的思考去看,记住尽信书不如无书,哈哈哈......  一.UART是什么? UART是一种通用串行数据总线,也就是用于数据传输.是用于主机与辅助设备进行通信.这里的主机理解为计算机,计算机内部采用并行数据,辅助设备采用串行数据.中间需要设备进行数据转换,这也决定了UART工作原理是将传输数据的每个字符一位接一位地传输.…
声明: 本ID发布的所有文章及随笔均为原创,可随意转载,单转载文章必须注明作者 aiyauto 及包含原文出处地址 http://www.cnblogs.com/aiyauto/p/7071712.html 未经本人许可,所有文章均不得用于商业用途. 前言 Arduino板通过串口(称为UART或USART串口)与其它设备进行通讯. 所有Arduino板至少有一个串口,数字引脚位为 0(RX) 和1(TX) Arduino Mega 有三个额外的 TTL串口如下: Serial1:19(Rx)…
https://www.cnblogs.com/Mysterious/p/4804188.html STM32L0 HAL库 UART 串口读写功能 串口发送功能: uint8_t TxData[10]= "01234abcde"; HAL_UART_Transmit(&huart2,TxData,10,0xffff);//把TxData的内容通过uart2发送出去,长度是10,timeout的时间是最大值0xffff 串口接收功能1: uint8_t value='F'; H…
  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环境下有这样几种解决办法:   建立一个工作区,在工作区里建…
在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),…
阅读前提:假设读者对CAN总线和485总线有一定了解. RX485连接CAN用法提出背景: 在一般情况下只能是CAN对CAN 485对485, 但是在调试过程中难免对出现设备没有CAN接口,或是没有485接口,或是端口不够用,导致无法进行调试工作.比如项目初期画的电路可能少CAN接口,或是少485接口,开发过程中由于设备的增加,导致端口不够用或是接口不兼容.PLC一般只有485或422接口.连在CAN行不行呢?   接下来看看CAN 的两种电平标准:   在看看485电平: •RS-485总线上…
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(系统的…
Design -> Netlist for project -> Protel…