- 博客(74)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 循环队列 C语言数据结构
生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。这里讲的是循环队列,首先我们必须明白下面几个问题一、循环队列的基础知识
2017-11-13 13:04:01 626
原创 链式栈 C语言数据结构
栈的链式存储结构 栈的链式存储结构与线性表的链式存储结构相同,是通过由结点构成的单链表实现的。为操作方便我们使用无头结点的单链表。此时栈顶为单链表的第一个结点,整个单链表为一个链栈。1. 链栈的类型定义://链栈的类型定义typedef struct node{ datatype data; /*
2017-11-13 12:07:29 627
转载 用逻辑分析仪对I2C总线进行分析
现在,已经有越来越多的外围器件与微控制器的接口形式是二线制的I2C串行总线,很多的电子场合都使用到了I2C总线,特别是使用标准51芯片的工程师需要模拟I2C总线,我以前也模拟过I2C总线,特整理了一点总线的资料。同时利用逻辑分析仪LA2532对I2C总线的传输特性进行观察,直观的了解I2C规范。 知识可能非常简单,有些东西也是在其它资料上查找的,只是希望能够给大家介绍一种学习和使用并
2017-05-14 11:06:10 7377
转载 http协议与web本质
当你在浏览器地址栏敲入“http://www.csdn.NET/”,然后猛按回车,呈现在你面前的,将是csdn的首页了(这真是废话,你会认为这是理所当然的)。作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的呢?......疑惑和细节真是太多了。坦白讲,要想彻彻底底的
2017-03-08 19:23:48 373
转载 QT信号和槽
原文地址:点击打开链接[cpp] view plain copy#ifndef MY_HEAD_H #define MY_HEAD_H #include #include //EastonWoo class A : public QObject //QObject::connect是在QObject定
2016-12-05 21:40:45 329
转载 Qt学习之路QString
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/275360这段时间回家,一直没有来得及写,今天才发现博客的编辑器有了新版。还是先来试试新版编辑器的功能吧!今天要说的是QString。之所以把QString单独拿出来,是因为string是很常用的一个
2016-10-31 22:21:56 271
转载 QT知识点总结
1> 定时器的使用QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); // 设置定时器回调函数 timer->start(1000); // 启动定时器2> 得到系统当前时间QTime time = QTime::
2016-10-19 15:30:29 1323
转载 QWT坐标轴的设置
1自定义坐标轴x轴设置为系统时间(分钟,秒数)代码如下class TimeScaleDraw: public QwtScaleDraw //自画坐标轴{public: TimeScaleDraw() { } virtual QwtText label( double v ) const //重绘坐标轴 刻度值
2016-10-19 15:28:04 5872
转载 QT 反走样 使画图光滑
今天继续前面的内容。既然已经进入2D绘图部分,那么就先继续研究一下有关QPainter的东西吧! 反走样是图形学中的重要概念,用以防止“锯齿”现象的出现。很多系统的绘图API里面都会内置了反走样的算法,不过默认一般都是关闭的,Qt也不例外。下面我们来看看代码。这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前面章节中的相关代码。 void P
2016-10-19 10:53:13 1300
转载 QT 定时器 timer 使用
From: http://dragoon666.blog.163.com/blog/static/107009194201092602326598/1.新建Gui工程,在主界面上添加一个标签label,并设置其显示内容为“0000-00-00 00:00:00 星期日”。2.在mainwindow.h中添加槽函数声明。private slots:void timerUpDate()
2016-10-19 09:36:42 1130
转载 客户端和服务器之间通信讲解
原文网址:http://www.myexception.cn/program/1600316.html一、关键词解释 客户端:能向服务器发送信息,提出请求。 服务器:能接收客户端发来的请求,并能发送数据给客户端以做出回应。从这里可以看出,我们的电脑可以充当双重角色。1、当我们用浏览器浏览网页,要查看某个文件时,我们的电脑会发出请求给文件服务器,文件服务器
2016-09-08 09:52:26 20022
转载 数据结构C语言实现之链式队列的6种算法代码
#include stdio.h>#include stdlib.h>typedef int elemType;/************************************************************************//* 以下是关于队列链接存储操作的6种算法 *//*********************
2016-09-01 17:48:07 781
原创 C 语言 数据结构之双向链表
#include #include struct Node{ char data; struct Node *left; struct Node *right;};typedef struct Node DListNode;typedef struct Node *DLinkList;int InitDList(DLinkLis
2016-09-01 16:13:10 516
原创 C语言中<>和“”有什么区别
例如你使用的是TurboCinclude 代表编译时直接在TurboC软件设置指定的路径(默认是TurboC所在文件夹下的include文件夹)中寻找里面是否有stdlib.h的库文件。如果有,直接加载;如果没有,报错(无法找到库文件)。include "stdlib.h"代表编译时先寻找你正在编辑的源代码文件(C或CPP文件)所在的文件夹里面有没有stdlib.h的库文件。如果有,优先加
2016-08-28 19:53:49 3004
原创 ypedef struct LNode结构指针
typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;LNode和*LinkList;是与前面的typedef配合起来使用的,意思是给你声明的结构体起一个别名叫LNode,同时起一个指针别名叫LinkList,以后就可以用以下方式声明变量:LNode a;//声明了一个struct LNo
2016-08-28 18:00:24 3476
转载 函数指针与指针函数的区别
一、函数指针首先它是一个指针,只是这个指针指向的是一个函数。指针变量可以指向变量的地址、数组、字符串、动态分配地址,同时也可指向一个函数,每个函数在编译的时候,系统会分配给该函数一个入口地址,函数名表示这个入口地址,那么指向函数的指针变量称为函数指针变量。表示:struct file_operations {int (*seek) (struct inode * ,struct f
2016-08-28 16:57:28 545
转载 总结一下typedef和#define的区别
原博客地址:http://www.cnblogs.com/li-peng/p/3853818.html1.概念 #define 它在编译预处理时进行简单的替换,不作正确性检查。它是预处理指令。 typedef 它在自己的作用域内给一个已经存在的类型一个别名。它是在是在编译时处理的。 例子:#define:#define DO doubleDO
2016-08-28 09:13:28 519
原创 c语言递归全排列问题
#include"stdio.h"#define SWAP(a,b,c) ((c)=(a),(a)=(b),(b)=(c))void perm(int *list,int i,int n);int main(){ int arry[4]={1,2,3,4}; perm(arry,0,3); return 0;}void perm(int
2016-08-27 20:08:07 7179
转载 对TCP/IP网络协议的深入浅出归纳
原文出处: Dana丶Li 的博客 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑。主要是因为对网络协议不太熟悉,对一些概念也没弄清楚。后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象.话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须
2016-07-05 12:56:34 240
转载 KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
KEIL RVMDK编译后的信息 Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Init
2016-04-27 17:49:50 411
转载 单片机flash和RAM/ROM的区别
http://www.diangon.com/wenku/rd/danpianji/201601/00030599.html点击打开链接连接地址
2016-04-22 10:56:36 1832
转载 浅谈C中的malloc和free
原帖及讨论:http://bbs.bccn.net/thread-82212-1-1.html 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一
2016-04-21 17:43:08 234
转载 C语言中的break、continue和goto三者的区别与用法
break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。 如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括
2016-04-21 16:46:45 2159
转载 STM32的bootloader IAP编程
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32 Bootloader设计。首先谈谈stm32的ISP和IAP区别和联系。ISP(In-System Programming)在系统可编程,指电路板上的空白器
2016-04-09 14:47:35 1432
转载 C语言详解 枚举
注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN
2016-03-09 23:12:07 338
转载 浮点数在串口打印函数
/********************************************************************************************************网上的浮点数在串口打印的函数都不太完美,于是参考他们的一些算法自己写了一个比较完善的算法可以完成包括负数和正数的浮点数转字符串的转换***********************
2015-12-24 22:33:14 1455 1
转载 C语言条件编译及编译预处理阶段
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中,并没有任何内在的机制
2015-12-17 18:27:56 239
翻译 C/C++动态内存创建与内存管理
1 内存空间逻辑组织A 静态数据区:内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,如函数中的静态变量就是在程序第一次执行到定义该变量的代码时才被初始化。所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。注意:初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过void
2015-12-14 00:41:00 301
翻译 #ifdef,#else,#endif和#ifndef,#else,#endif 详解
关于预处理命令中的文件包含(#i nclude),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明。以下分3种情况:1:情况1:#ifdef _XXXX...程序段1...#else...程序段2...#endif 这表明如果标识符_XXXX已被#define命令定义
2015-12-14 00:39:45 746
翻译 enum 在c中的使用
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这
2015-12-14 00:37:10 314
转载 msp430 看门狗设置
看门狗定时器(Watchdog Timer(WDT_A))实际上是一个特殊的定时器,即可以用来作为看门狗使用,也可以用作定时器。所谓的看门狗功能,是指可以监控程序是否由于某些干扰或者错误而跑飞。其原理就是发生故障的时间满足规定的定时时间后,产生一个非屏蔽中断,使系统复位。这样当在调试程序或预计程序在某个地方可能瞬时发生错误时(如外部电路干扰),选用设置看门狗定时中断可以避免程序跑飞。当然,
2015-11-10 11:04:12 8657 1
转载 stm32 外部中断的使用(含实例)
stm32 外部中断的使用(含实例)中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持256个中断,其中16个内部中断,2
2015-08-30 17:13:10 952
原创 步进电机单双脉冲控制说明
转速计算:拿1.8度的步进电机来说,整步运行时转一圈360度需要360/1.8=200步。每秒200步就是每秒一转。以此类推。细分举例来说:1/2细分就是360/1.8/(1/2)=400步。这样给同样的脉冲数转速就慢一半。静态电流就是电机不转的时候绕组通过的电流,提供锁止转矩,静态电流为0时锁止转矩接近于0。动态电流就是电机旋转时候绕组通过的电流。静/动态电流越大发热约厉害,这个地球人都知
2015-08-27 11:32:32 13457
翻译 PWM输入模式捕捉4路PWM波形的周期和占空比讲解
PWM输入是输入捕获的一个特殊应用,输入捕获就是当连接到定时器的引脚上产生电平变化时对应的捕获装置会立即将当前计数值复制到另一个寄存器中。你可以开启捕获中断然后在中断处理函数中读出保存的计数值。与输入捕获不同的是PWM输入模式会将同一个输入信号(TI1或TI2)连接到两个捕获装置(IC1和IC2)。这两个捕获装置一个捕获上升沿一个捕获下降沿。TI1FP1、TI2FP2它们中的一个被选择为触发输
2015-08-27 00:52:08 9651 1
翻译 stm32PWM精确控制脉冲个数
点击打开链接原出处 谢谢大家 一起学习01/****************************02**TIM2的通道1使用单脉冲模式03**TIM3使用门控模式用来输出PWM04**
2015-08-24 05:34:13 24693 1
转载 STM32的BootLoader 从SD卡更新固件
STM32的BootLoader 从SD卡更新固件目 录1. 前言2. 初识BootLoader2.1 百度百科的BootLoader2.2 BootLoader的简单理解2.3 BootLoader的作用3. BootLoader预备知识3.1 复位序列3.1.1
2015-06-09 10:59:26 959
原创 C++程序实例
实例1#include#include//进制流输出头文件 #includeusing namespace std;//using std::endl;//using std::cout;//using std::cin;int add(int a, int b){return a+b;}int main(){
2015-06-07 12:30:25 4913
原创 C语言函数使用
连续空间的传递数组(数组名 标签)结构体(结构体变量)struct abc(int a; int b; int c);struct abc buf;实参fun(buf); fun(&fun)形参void fun (struct abc a1); void fun (struct abc a1*)sprintfchar buf[100];int a
2015-06-04 21:46:13 379
原创 嵌入式C语言高级_内存空间 笔记
指针内存类型资源地址 门牌号的代名词指针变量存放指针这个概念的盒子C语言编译器对指针这个概念有两个疑问、分配一个 盒子多大 在32位系统中 指针就是4个字节、盒子里存放的地址 内存的读取方法是什么、指针指向的内存空间 一定要保证合法性const 越界#include int main(){ const int a=12
2015-06-01 16:10:54 563
原创 C语言高级语法概述笔记
GCC 全称 GNU C compile GNU 是一个开元组织 C 的编辑器 现在 GCC变成了 多种 语言编辑器 作为 嵌入式开发人员对于GCC要非常了解gcc -v查看默认安装 版本gcc -o outputgcc -o 输出文件 输入文件gcc -v -o build 001.c 打印出许多服务信息/usr/lib/gcc/i486-linux-gnu/4.4
2015-05-30 22:02:10 766
MSP430F677x(1)_MSP430F676x(1)_MSP430F674x(1)_Code_Examples
2015-11-25
STM32_USB-Host-Device_Lib_V2.1.0 (WINUSB HID)
2015-09-14
EMW3162 WIFI 无线模块
2016-06-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人