- 博客(14)
- 资源 (12)
- 收藏
- 关注
原创 modbusCRC16的手工计算
在网上流行的CRC码的计算方法如下:1、 预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器; 2、 把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低 8位相异或,把结果放于CRC寄存器; 3、 把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查移出位; 4、 如果移出位为0:重复第3步(再次右移一位
2012-11-30 10:45:41 1172
转载 一些常用的软件滤波方法
1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法:
2012-05-30 15:21:39 504
转载 STM32F10x的解释
;/*****************************************************************************/;/* STM32F10x.s: Startup file for ST STM32F10x device series */;/**********************************
2012-03-26 13:06:00 1708
转载 谈宏晶STC单片机的ISP功能 (芯片保密性)转
两年前,曾经用过STC的单片机,当时对他的那个ISP下载功能很是感兴趣,且当时也想实现一个IAP升级办法,又不想占用他现有的flash空间,毕竟还是有点小。就想办法着手研究了一下,就写了一段代码在8051内核的64K空间依次读取所有的数据,最后得到了一个2k多一点的ISP所用的bin文件,反汇编得到汇编文件,就在那花功夫细细地看了看实现方法,分析得出了基本的下载协议,两年后,我觉得
2012-03-07 17:01:08 2816
转载 串口输入相关(转)
基本串口通讯 a) 目的:在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。b) 初始化函数定义: void USART_Configuration(void); //定义串口初始化函数 c) 初始化函数调用: void UAR
2011-12-07 23:27:39 1102
转载 STM32 RTC设置 (转)
RTC配置:1.打开电源管理和备份寄存器时钟。这个在RCC配置中打开。 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);2.使能RTC和备份寄存器的访问(复位默认关闭)。 PWR_BackupAccessCmd(ENABLE);3.检查电池是否断电过(是否RTC初始化过),通过的话直
2011-11-29 23:49:38 6273 1
转载 nand flash,nor flash,spi flash,片上RAM,片外RAM (转)
Flash有掉电数据保存的特点,RAM掉电则数据丢失,但是RAM的速度更高,擦写次数理论上没有限制,而Flash则不行。Nand Flash相比其余的几种flash优势在于可擦写次数多,擦写速度快,但是在使用以及使用过程中会出现坏块因此需要做特殊 处理才可以使用。其主要用于数据存储,大部分U盘都是Nand Flash。 Nor Flash读写时序类似于SRAM,只是写的次数
2011-11-23 12:37:15 3772 1
转载 实现STM32中USART的DMA(转)
对于没玩过DMA 的朋友,这里简单说一下DMA,用自己的语言说吧,那就是,从某个位置传输数据到某个位置,如果不用DMA,那要CPU参与操作,一个字节一个字节地搬,效率高点的,就一个字一个字地搬.但当你用了DMA 后,那就是只需要设置:A.从哪里开始搬; B,搬到哪里去;C以字节方式搬还是半字还是字;D:一共搬多少个.之后,启动DMA.CPU内部就会开始搬数据了,整个搬数据的过程都不
2011-11-17 16:01:08 3029
转载 简单的I2C协议理解
一. 技术性能: 工作速率有100K和400K两种; 支持多机通讯; 支持多主控模块,但同一时刻只允许有一个主控; 由数据线SDA和时钟SCL构成的串行总线; 每个电路和模块都有唯一的地址; 每个器件可以使用独立电源二. 基本工作原理: 以启动信号START来掌管总线,
2011-11-17 11:08:52 520
原创 MDK下连接两个字符串自定义函数
不使用stract,虽然是笨办法 void mstract(char *c1,char *c2){ int i=0; int j=0; while (c1[i]!='\0') i++; while ((c1[i++]=c2[j++])!='\0'); c1[i+1]='\0';}
2011-11-16 16:00:39 1668
原创 mdk报错invalid redeclaration of type name "s32"
将mdk固件库升级成V3.5.0,编译至XX.c时报错\stm32f10x.h(487): error: #256: invalid redeclaration of type name "s32" (declared at line 23 of "d:\Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h")观察同名XX.h,其中有#include "s
2011-11-11 16:55:37 4018
转载 printf导致BKPT异常
以前使用printf 都很顺利,程序可以很自然地通过串口输出字符串,最近使用printf时,程序总是进不去,就是连MAIN函数都不会执行了,只要把printf屏蔽了,软件就可以正常运行使用的是STM32芯片仿真的时候程序就是一直在:0x08000454 BEAB BKPT 0xAB动都不动这个问题的解决办法是:在项目设置中 选择 target选项卡 然
2011-11-11 09:36:04 3358 1
转载 STM32的ADC输入通道配置
STM32中最多有3个ADC模块,每个模块对应的通道不完全重叠。下图是STM32F103CDE数据手册中的总框图的左下角,图中可以看出有8个外部ADC管脚分别接到了3个ADC模块,有8个外部ADC管脚只分别接到了2个ADC模块,还有5个外部ADC管脚只接到了ADC3模块,这样总共是21个通道。下表是这些ADC管脚与每个ADC模块的对应关系,表中可以看出ADC1还有2个内部通道,分别
2011-11-10 13:54:56 2774
转载 使用RealViewMDK时常见的问题
目前在市场上最常用的ARM编程工具无非是Real View MDK和IAR Embedded Workbench。我个人觉得,目前IAR是比较成熟、稳定、使用方便等优点,深受广大嵌入式开发者的喜爱。Real view MDK得到ARM公司的大力支持,功能很强,也逐步完善起来。使用Real view(以下省略为RV)学习ARM指令的时候,初学者在调试过程中,经常会遇到类似于如下的错误消息。
2011-11-09 09:23:16 579
从零开始学Java编程
2010-06-11
串口调试助手V2.2
2010-06-07
通信原理AMIHDB3码型变换实验
2010-06-07
电子密码锁的课程设计
2010-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人