12 2018 档案
摘要:症状:shell中大于,大于等于,小于等于,lt,gt ,ne,ge,le 很对应。 应对方法: 大于 -gt (greater than) 小于 -lt (less than) 大于或等于 -ge (greater than or equal) 小于或等于 -le (less than or equal) 不相等 -ne (not equal) -o 表示 逻辑“或”,...
阅读全文
摘要:51802QFAA与51822QFAA在FLASH 跟RAM的容量没有差别;区别在于:a,接收灵敏度 51802是-91dBm;51822是-93dBm,这个差异导致接收距离有差异;b,Tx Power @省电模式 51822是-35dBm,51802是-30dBm;这个导致芯片的发射的功耗不同;5
阅读全文
摘要:之前了解过STM32 的内存分配问题,对于蓝牙芯片51822的内存分配问题把项目中,遇到了.bss和。data部分超了的问题,这其实就是声明的变量和stask 及 heap的大小总和超出了单片机的RAM,仔细的分析了下NRF51822的ram的分配,这里做下分享。 首先是看下nrf51822的ROM
阅读全文
摘要:它的源代码和头文件分别为app_timer.c/app_timer.h。这是Nordic为我们提供的虚拟定时器,这个定时器不同于硬件上的TIMER,而是基于RTC1实现的一种虚拟定时器,其将定时功能作为了一个资源进行管理,所以会有初始化、创建等过程。 nrf51822的SDK采用封装思想,需要暴露给
阅读全文
摘要:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Pe
阅读全文
摘要:因为shell里面的变量是没有类型的,因此输出多个变量也是可以的。 变量尽量用大写 第一行注释决定了你是使用哪一种shell来解释 如果有多个变量的情况下 结果如下:如果多输入的话,就会把多输入的放到最后面的一个变量 关于换行,在选择不同的、bin/sh 和bin/bash 的情况是选择-n 或者/
阅读全文
摘要:注意不能有控制,指令之间 【1】shell脚本的基础知识 (1)shell脚本的本质 编译型语言 解释型语言 shell脚本语言是解释型语言 shell脚本的本质 shell命令的有序集合 (2)shell 编程的基本过程 基本过程分为三步: step1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文...
阅读全文
摘要:我所祷告的,就是要你们的爱心,在知识和见识上,多而又多,使你们能分辨是非,做诚实无过的人,直到基督的日子。——腓立比书【1:9~10】 最近在调的MCU的型号为STM32F030,配置芯片相较之前的MCU都比较简单,功能配置很顺利。但是在写串口程序的时候,发现串口一直不通,使用示波器也没有波形。因为
阅读全文
摘要:数据结构之顺序队列(C实现) 目录 一、队列是什么 二、队列的结构 三、队列的操作 四、队列的一些问题以及解决办法 五、动态顺序队列的实现 5.1 MyQueue.h 5.2 MyQueue.c 5.3 main.c 回到顶部 一、队列是什么 队列是一种可以实现“先进先出”的存储结构。 队列通常可以
阅读全文
摘要:不是NULL指针,是指向“垃圾”内存的指针。“野指针”是很危险的。 “野指针”的成因主要有两种: 1)指针变量没有被初始化。 2)指针p被free之后,没有置为NULL,让人误以为p是个合法的指针。 3) 指针操作超越了变量的作用范围。这种情况让人防不胜防。 #include #include //表示引用了...
阅读全文
摘要:点击source tree 配置账号和密码 配置账号和密码 配置网络uri 指令来修改email和name
阅读全文
摘要:注意这个地方那就是malloc返回一个p指针。 p指针=“ssss”; 这个时候相当于将字符串的常量指针返回给了P指针了。这时候free释放的指针就会出现错误的。
阅读全文
摘要:【2】内存管理 (1)动态内存 1)C/C++定义了4个内存区间: 代码区/全局变量与静态变量区常量(数字或者字符串)/局部变量区即栈区/动态存储区,即堆区。 2)静态存储分配 通常定义变量,编译器在编译时都可以根据该变量的类型知道所需内存空间的大小, 从、而系统在适当的时候为他们分配确定的存储空间。 在栈上创建。在执行函数时,函数内局部变量的存储...
阅读全文
摘要:【2】typedef (1)在C语言中,允许使用关键字typedef定义新的数据类型 其语法如下: typedef <已有数据类型> <新数据类型>; 如: typedef int INTEGER; 这里新定义了数据类型INTEGER, 其等价于int INTEGER i; <==> int i;
阅读全文
摘要:3种方法, 其中第2种方法和第3种方法是全局变量。 第一种可以是局部变量和全家变量 第二种就是全局变量,也可以是局部变量 第三种就只能是全局变量了。无法重新进行定义了。--无名结构体可以放在内嵌结构体,并且其他结构体也不需要使用的,这种情况需要使用。 第一种 第二种 第三种 结构体嵌套的方法 嵌套的
阅读全文
摘要:GCC的编译流程分为四个步骤: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) 可以看的出来文件大小 gdb 调试
阅读全文
摘要:在某些文件里面找.o 嵌套 和 VPATH
阅读全文
摘要:小结 make -C make_test2/ 执行某个目录下的Makefile -I dir指定被包含的Makefile所在目录 ,引用某些文件的目录,例如说是 CFLAGS=-c -Wall -I include ,表示引用的引用了这个文件里面的include里面的文件 make -f Makef
阅读全文
摘要:软件源的配置文件 服务器的 2个TAB可以看相关的文件,一个TAB可以补全文件 /表示在根目录下的。 管道,可以将多个预计结合起来 linux@linux:/$ ps -ef | grep bash 输入输出重定向
阅读全文
摘要:linux系统内核分为 文件管理,I/O 、中断、任务调度,内存管理,网络协议。
阅读全文
摘要:个位数 对10取余数即可 十位数 先将个数给除掉,然后对10 取余数,例如569,就是先除以10 =56,然后再去余数 。,对于5678,也是先/10 然后%10 千位数,例如5678 先除100,然后再对10取余数 最高位,例如567,直接/100 即可。
阅读全文
摘要://递归函数是指一个函数的函数体中直接或间接调用了该函数自身注意递归函数,一定要有终止条件,并且输入的值是在函数的范围以内的。#include int fib(int n); int main(int argc, char *argv[]) { int n = 1; while (n (* [] )( );
阅读全文
摘要:char *f1(); 指针函数返回的是指是一个指针. 1、返回值是全局变量 2、返回值是statci 变量 3、字符串指针,char * =“”hello“,但是注意不能修改”!。 4、堆的地址 5、malloc 的地址 6、还可以是是传输参数的地址 优先级的问题 *p ++ ;其中++的优先级高
阅读全文
摘要:1、int sum(int a[] ,in len) 当数组名为函数形参时,此时a就是一个指针,也就是*a; 2、如果函数是需要修改多个数值,那么传递的值是 指针。 3、有些字符串函数只是对字符进行统计,不进行修改,那么形参中可以使用const常量
阅读全文
摘要:1、void * 是不能进行运算的,例如void *p p++; 这2个值是没有任何规律的。 2 、printf的时候打印void *p 指向的数据,必须强制类型转换,因为编译器不知道取地址多少位。 例如int a =10 ; void * p; p =&a ; //这个还OK printf("%d
阅读全文
摘要:1、首先,我们看一下这段代码: 它的简单意思就是从键盘读入一个字符,然后输出到屏幕。理所当然,我们输入1,输出就是1,输入2,输出就是2。 那么我们如果输出的是12呢? 它的输出是1。 这里我们先简单的解释下,因为当我们从键盘输入字符‘1’,‘2’,并按下回车后,我们的输入被放入了输入缓冲区,这个时
阅读全文
摘要:scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序: 程序1: int main() { char ch1, ch2; scanf("%c", &ch1); s
阅读全文
摘要://note 字符串常量是常量,类似static 定义的变量 以及和全局变量是不可以被改变的 char *p="hello"; char *p2 ="hello"; 注意两个指针p和p2是一样的,常量的内容不可以被改变。 即*p ++ 或者*p =' ' 是不可以被改变的。 指针是可以改变的。例如 p++ ;是可以的
阅读全文