- 博客(11)
- 收藏
- 关注
原创 STC不断电下载
STC每次烧录都要重新断开电源再次打开,十分麻烦,于是想要实现不断电下载。我们知道,STC单片机中有两个数据存储区,一个是固化好的ISP程序数据区,另一块是用户数据区。STC是通过ISP来下载。ISP的作用就是将上位机发送来的数据写到用户区,即将上位机发来的程序写到ROM中。stc启动分为两种一种是冷启动就是从断电在上电,另一种就是普通的复位启动。第一种启动是从单片机出场就固化好的ISP启动区来启动
2015-06-28 23:43:43 1184 1
原创 STC DATAFLASH 模拟EEPROM
今天在写STC的EEPROM,一直调不出来结果,但是还是很有收获的,放上代码,慰劳自己一天的努力,主要还是参考STC的开发手册#include <reg51.h>#include<intrins.h>//定义EEPROM的命令#define CMD_READ 0x01 #define CMD_WRITE 0x02#define CMD_ERASE 0x03//定
2015-06-27 04:17:35 1012
转载 Keil C51中的启动程序startup.a51最新中文说明!
由于CPU和程序启动代码文件STARTUP.a51的重要性,一些8051派生的CPU产品要求初始化CPU来满足设计中的相应的硬件,因此,有时候用户需要对STARTUP.a51进行修改,所以进行注释一下: ;————————————————— ;startup.A51: 用户上电初始化程序 ;—————————————————- ; ;使用以下EQU命令可定义在CPU复位时需要用0进行初始化
2015-06-26 13:13:15 3103
原创 CRC16计算
两个设备传输数据的时候需要校验数据是否准确,此时就需要校验码,校验通常有奇偶校验,和校验和CRC校验,这三种校验用的比较多,但是CRC校验是其中最准确的,因此我看了一下CRC校验的算法,下面是一些整理。首先说一下CRC校验的工作原理循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最
2015-06-25 19:59:34 768
原创 Linux链表
#ifndef _LIST_H#define _LIST_H//定义链表的链接指针,前指针和后指针typedef struct list_head{ struct list_head *next; struct list_head *prev;}list_head;//获得链表头的地址#define LIST_HEAD_INIT(name){&(name),&(name)
2015-06-24 00:05:11 288
原创 获得数组大小
#include <stdio.h>#define GetArrayLen(array) sizeof(array) / sizeof(array[0])int main(){ char a[20]; int c = GetArrayLen(a); printf("%d",c); return 0;}
2015-06-23 14:57:31 286
原创 函数指针
为什么要用函数指针先来看看函数指针的形式返回值类型 ( * 指针变量名) ([形参列表]);如int (*Oper)(int,int);//定义一个指针变量,变量名为Oper,有两个输入参数,都为整型数,并且返回一个int结果我们知道指针是指向地址的变量,函数指针当然就是指向函数首地址的变量,也就是指向函数名。下面举一个例子//定义一个函数void Show(char* s){ prin
2015-06-23 14:11:44 287
原创 STM32 启动文件
先来看看启动代码中的伪操作和伪指令EQU 用于定义常量,相当于C中的宏定义 如Stack_Size EQU 0x00000400 ——— #define Stack_Size 0x00000400 ALIGN 字节对齐方式 ALIGN = 3 EXPORT 相当于声明了一个全局变量 EXPORT __Vectors
2015-06-17 23:35:28 398
原创 STM32 IAP
最近一直在看IAP的东西,总结了一写东西,但是具体的东西还没有尝试。先来说具体的问题 我想要的是可以通过无线来下载程序。思想是,首先在单片机中烧入一段程序,称之为bootloader,这段程序的目的是接收串口数据并且将数据写到flash指定的位置。但是现在我碰到了一些问题,首先是flash,不知道该如何操作,其次是如何从bootloader跳到APP。首先来说一下如何操作内部flashflash只
2015-06-17 20:18:22 602
原创 DMA介绍和几个问题
我学习DMA碰到的几个问题不了解什么是DMA 不知道DMA有什么优点 不知道什么时候使用DMA问题一 DMA简单的说就是数据的搬运工,将数据从外设搬到内存,或者将内存的一个位置搬运到另一个位置。只要开启了使能就开始搬运。问题二 既然DMA是数据的搬运工,那么CPU就可以不用管数据的搬运了,只要DMA一个信号说我搬完了,CPU进行数据处理就可以了。这样在数据搬运期间,CPU就可
2015-06-17 08:52:15 2599
原创 设置系统时间
首先引入 using System.Runtime.InteropServices;//dll引用时要用到的 using System.Text.RegularExpressions;//正则表达式匹配要用到的定义获得系统时间的结构体 [StructLayout(LayoutKind.Sequential)] public class wSystemTime {
2015-06-09 16:02:53 380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人