- 博客(52)
- 资源 (15)
- 收藏
- 关注
转载 C语言中 sscanf( )的用法
sscanf() - 从一个字符串中读进与指定格式相符的数据.[cpp] view plain copyprint? 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明:ssc
2017-07-08 15:46:17
599
转载 C语言实现双向链表
文章转载自:http://blog.youkuaiyun.com/dlutbrucezhang/article/details/8824646[cpp] view plain copyprint? #include <assert.h> #include <stdlib.h> #include <stdio.h> typedef struct myList
2017-07-08 11:21:08
318
转载 C语言中的预处理详解
本文转载自:http://blog.youkuaiyun.com/dlutbrucezhang/article/details/8753765在嵌入式系统编程中不管是内核的驱动程序还是应用程序的编写,涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等方面。因此引入了预处理与条件编译的概念。 在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令
2017-07-08 11:03:39
394
转载 堆栈
本文转载自:http://blog.youkuaiyun.com/dlutbrucezhang/article/details/8747828堆栈 我们已经对堆栈这种数据结构有了初步认识。堆栈是一组元素的集合,类似于数组,不同之处在于,数组可以按下标随机访问,这次访问a[5]下次可以访问a[1],但是堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出
2017-07-08 10:48:58
417
转载 C静态库的构建
本文转载自:http://blog.youkuaiyun.com/dlutbrucezhang/article/details/8755881静态库 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。本节介绍怎么创建这样一个库。我们继续
2017-07-08 08:45:03
323
原创 CC3200-UDP-Client
下面的代码是udp_socket工程的main()函数,运行前须知道UDP通信的机制。该程序是客户端的程序,运行前需要开启服务器和端口。 在CC3200SDK-1.2.0上测试可用,下面是主函数文件的代码://*****************************************************************************//已实现UDP发送,接受
2017-07-04 19:02:34
953
转载 程序员应该阅读的非编程类书籍有哪些?
转自:http://blog.youkuaiyun.com/justjavac/article/details/37921837在 stackoverflow 上有人提问 程序员应该阅读的非编程类书籍有哪些? 本来只想整理编程类书籍, 不过突然眼前一亮,发现了《The Art of War - Sun Tzu》回答者的推荐说明引用 Wikipedia 上的:《哥德尔、艾舍尔、巴赫——集异璧之大成》Gödel,
2017-07-01 11:21:08
367
原创 ZigBee_安全模式
在Zglobals.c和Zglobals.h中设置:uint8 zgSecurityMode = ZG_SECURITY_MODE;#define ZG_SECURITY_NONE 0#define ZG_SECURITY_RESIDENTIAL 1#define ZG_SECURITY_PRO_STANDARD 1 // For now, same as residenti
2017-07-01 10:31:02
679
转载 C语言中字符数组和字符串指针分析
本文转载自:http://www.cnblogs.com/gigikouyi/archive/2006/08/01/464737.html 测试环境是win10-64位,编译器是C-free,测试程序如下: #include
2017-07-01 08:49:22
262
原创 CC3200-UART-ADC-PWM
在CC3200SDK-1.2.0上测试可用,下面是main函数的代码:注意:需使用example adc project 进行代码融合//采集电压以PWM的方式输出,串口接收相关指令,执行相关操作,显示相关信息#include <string.h>#include <stdint.h>#include <stdlib.h>#include <stdbool.h>#include "utils
2017-06-30 20:54:52
1417
原创 CC3200-PWM
在CC3200SDK-1.2.0上测试可用,下面是main函数的代码:#include <stdio.h>#include "hw_types.h"#include "hw_ints.h"#include "hw_memmap.h"#include "hw_apps_rcm.h"#include "hw_common_reg.h"#include "interrupt.h"#inclu
2017-06-30 20:17:41
890
原创 CC3200-ADC
在CC3200SDK-1.2.0上测试可用,下面是main函数的代码:#include <string.h>#include <stdint.h>#include <stdlib.h>#include <stdio.h>#include <stdbool.h>#include "utils.h"#include "hw_memmap.h"#include "hw_common_reg.
2017-06-30 19:09:18
811
原创 shell的外部命令和内部命令
内部命令: 内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。 外部命令: 外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当
2017-06-18 18:58:42
543
原创 Liunx中的du和df命令
df:列出文件系统的整体磁盘使用量 du:评估文件系统的磁盘使用量,这个需要一段时间fd [-ahikHTm] 目录或文件名 -a 列出所有的文件系统,包括系统特有的/proc等文件系统 -k 以KB的容量显示各文件系统 -m 以MB的容量显示各文件系统 -h 以人们容易阅读的格式显示 -H 以M=1
2017-06-17 22:45:08
598
原创 硬链接与软链接
hard link(硬链接或实际连接): 1、通过文件系统的inode连接来产生新文件名,而不是产生新文件; 2、每个文件都会占用一个inode,文件内容由inode的记录来指向; 3、硬连接只是在某个目录下新建一条文件名连接到某个inode号码的关联记录而已; 4、以文件副本的形式存在,但不占用实际空间; 5、不允许给目录创建硬链接; 6、硬链接只有在同一个文件系统中才能创建; 7、
2017-06-17 22:39:58
422
原创 ZigBee_加密算法设置
AES加密算法,是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位分组加密和解密数据。Z-Stack中采用的是128位的加密方式。三步配置: 1、创建密钥 在配置文件f8wConfig.cfg中修改 /* Default security key. */ -DDEFAULT_KEY=”{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B
2017-05-29 11:47:01
1892
原创 ZigBee_ADC数据位
ADC通道( channel)与引脚是一一对应的关系,即每个ADC通道都有固定的与之对应的引脚。 有内部通道和外部通道之分。模拟传感器: value = ADCL >> 2 ; //将采集到低6位赋值到7~2中(5-0),ADCH(13-6) value |= ((uint16) ADCH) << 6
2017-05-29 11:44:42
2024
原创 ZigBee缩略语和简称
缩略语和简称: AIB 应用支持层的信息库 AF 应用框架 APDU 应用支持子层协议数据单元 APL 应用层 APS 应用支持子层 APSDE 应用支持子层数据实体 APSDE-SAP 应用支持子层数据实体-服务接入点 APSME 应用支持子层管理实体 APSME-SAP 应用支持子层管理实体—服务接入点 ASDU APS服务数据单元 BRT 广播重试计时器 BT
2017-05-29 11:34:35
887
原创 ZigBee_协议栈简介
部分层功能介绍:APP:应用层,用户可以根据需求添加自己的任务。这个目录中包含了应用层和项目的主要内容,在协议栈里面一般是以操作任务实现的。 HAL:硬件驱动层,包括与硬件相关的配置、驱动以及操作函数。 OSAL:协议栈的操作系统。 Profile:AF层,包含AF层处理函数。 Security&Services:安全服务层,包含安全层和服务层处理函数,比如加密。 Tools:工程配置目录
2017-05-29 11:32:26
10711
原创 并发进程的同步与互斥
//两个或更多进程在协作时需保持互斥//进程的并发执行特征//P,V操作#include <sys.h>semaphore mutex=1;int x;void process_one(){ int y,z; P(mutex); //wait(mutex); x=1; y=0; if(x>=1) y=y+1; z=y;
2017-05-29 10:19:32
809
原创 逻辑位运算
//正数的补码:与原码相同。//负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int bit_1,bit_2,bit_3; bit_1 = 12; //00001100 bit_
2017-05-28 11:18:44
272
原创 使用数组、指针的效率问题
/***数组与指针之间的关系**数组名的是一个指针常量**当你根据某个固定数目的增量在一个数组中移动时,使用指针变量将比使用下标产生效率更改的代码,当这个增量是1并且具有地址自动增量模型时,这点表现的更为突出。**声明为寄存器变量的指针通常比位于静态内存和堆栈中的指针效率更高。**如果你可以通过测试一些已经初始化并经过调整的内容来判断循环是否应该终止,那时你就你需要使用一个单独的计数器。
2017-05-28 10:37:23
597
原创 字符串复制函数的实现
#include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 80char* strcopy(char*,char*);int main(){ char str1[SIZE]; char str2[SIZE]; printf("请输入一个字符串:"); scanf("%s",str
2017-05-28 10:09:05
714
原创 均值滤波&阈值均值滤波
I=imread('imagefile.jpg');I=rgb2gray(I);%J=imnoise(I,'gaussian',0,0.005); %高斯噪声J=imnoise(I,'salt & pepper'); %椒盐噪声subplot(2,2,1);imshow(I); title('原始图像'); subplot(2,2,2); imshow(J
2017-04-15 16:35:10
2901
1
原创 函数fspecial( )与滤波算子
I=imread('imagefile.jpg');I=rgb2gray(I);I=im2double(I);A=fspecial('log'); %拉普拉斯高斯算子 %A=fspecial('prewitt'); %prewitt算子,用于边缘增强%A=fspecial('unsharp'); %对比度增强滤波算子
2017-04-15 16:25:31
888
原创 平滑与锐化算子
I=imread('imagefile.jpg'); %读入图像J=imnoise(I,'gauss',0.05,0.02); %添加高斯噪声%J=imnoise(I,'salt&pepper',0.02); %添加椒盐噪声x=[0,1,0;1,-4,1;0,1,0]; %拉普拉斯算子y=[-1,-1,-1
2017-04-15 16:14:20
2173
原创 用不同的滤波器对不同强度的噪声进行滤波处理
I=imread('imagefile.jpg');J = imnoise(I,'gauss',0.05,0.02);%添加均值为0.05,方差为0.02的高斯噪声%J = imnoise(I,'salt & pepper',0.02); %添加2%像素被污染的椒盐噪声 ave1=fspecial('average',3);
2017-04-15 15:42:34
998
转载 __cplusplus的妙用
如果你不想理解下面这段代码的意义,那么请你记住:在你的代码不知道是被c调用还是c++调用时,请添加此段代码。#ifdef __cplusplusextern "C"{#endif//code#ifdef __cplusplus}#endif下面详细说明此段代码的意义: __cplusplus是c++定义的宏,如果是c++调用的话,extern c声明会有效。如果时c调用的话,那么,ex
2017-03-21 18:24:39
314
原创 NULL指针
NULL指针并不指向任何对象。不同的机器对0位置的读写具有不同的权限。可以用下面的程序进行测试:#include <stdio.h>main(){ char *p; p = NULL; printf("Location 0 contains %d\n", *p);}
2017-03-17 21:56:33
230
翻译 输出缓存区的内存分配
程序输出有两种方式:一种是即时处理方式,另一种是暂存起来,然后再大块写入的方式,前者往往造成较高的系统负担。main函数结束之后,作为程序交回控制系统之前C运行时库会进行一些清理工作。缓存区的大小由系统头文件#include <stdio.h>main(){ int c; //char类型无法容纳EOF static char buf
2017-03-17 21:17:33
627
原创 ZigBee_数据接收函数解析
数据包被发送到到一个注册登记过的端点,在应用层通过OSAL事件处理函数中的接受信息事件 AF_INCOMING_MSG_CMD 来处理数据的接受。其中数据的接受是通过在Af层定义的结构体 afIncomingMSGPacket_t 来进行的。typedef struct{ osal_event_hdr_t hdr; //OSAL消息队列,接受消息为 A
2017-03-15 00:08:06
3339
1
原创 ZigBee_数据发送函数解析
数据发送函数原型:afStatus_t AF_DataRequest( afAddrType_t *dstAddr, //指向发送目的地址指针 endPointDesc_t *srcEP, //指向目的端点的端点描述符指针 uint16 cID,
2017-03-14 23:59:33
4496
原创 ZigBee_端点管理_描述符
ZigBee网络中的所有设备都有一些描述符,用来描述设备类型和应用方式。描述符的定义和创建配置项在文件ZDOCConfig.h和ZDOConfig.c中完成。IEEE地址,设备地址,全球唯一 每个节点都具有物理地址(长地址、MAC)和网络地址(短地址),每个节点都有241个端点 如果设备之间需要绑定,/必须在网络层注册一个或多个端点来进行数据的发送和接受以及绑定表的建立。#define GENE
2017-03-13 23:19:30
1969
原创 ZigBee_校正函数
vddvalue=69*getVddvalue()/256;extern unsigned int getVddvalue(void){ unsigned int value; unsigned char tmpADCCON3=ADCCON3; ADCIF=0; ADCCON3=(ADC_REF_115V|ADC_DEC_064|ADC_CHN_VDD3); while(!AD
2017-03-13 22:43:52
883
原创 空指针与空字符串
NUL是ASCII字符集中‘\0’字符的名字,它的字节模式为全0,;NULL指一个其值为0的指针。它们都是整型值,其值也相同,所以可以互换使用。注意:当常数0被转换为指针使用时,这个指针绝对不能被解引用。int *P;if(p == (char *) 0); //合法的使用if(strcmp(p,(char *)0) == 0); //非法的使用,因为函数strcmp( )查看了
2017-03-12 17:57:33
1489
翻译 数组作为函数参数时的用法
注意:将数组名作为参数毫无意义,因此C语言中会自动将作为参数的数组声明转换为相应的指针声明。int strlen(char s[]){ /*code*/}与下面的写法完全相同:int strlen(char* s){ /*code*/}
2017-03-12 17:21:36
637
翻译 动态内存分配:如何将两个字符串连接成单个字符串
注意:字符串就是一串以NUL字节结尾的字符 mallor( )函数并不执行初始化工作char *r, *mallor();r = mallor(strlen(s) + strlen(t) + 1); //让r指向一个地址,该地址的大小动态可调整 //且必须多分配一个字节存放空字节if(!if)
2017-03-12 16:55:47
902
原创 ZigBee_I2C协议器件地址
首字节是"片选信号",即7位从机地址加1位方向(读写)控制. 读写是站在主机的立场上定义的. "读"是主机接收从机数据,"写"是主机发送数据给从机. 重复位主要用于主机从发送模式到接收模式的转换"信号",由于只有2线, 所以收发转换肯定要比SPI复杂,因为SPI可用不同的边沿来收发数据,而I2C不行. 在硬件I2C模块,特别是MCU/ARM/DSP等每个阶段
2017-03-11 23:37:41
982
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人