- 博客(81)
- 资源 (13)
- 收藏
- 关注
原创 TI的Zigbee芯片 CC2530中添加波特率2400,4800等UART 波特率
在使用TI的ZigBee芯片做UART通信的时候,发现缺少2400、4800,等波特率,自己添加了一下并测试成功,方法如下:1. 在_hal_uart_isr.c中修改如下:2. _hal_uart_dma.c 中的修改如下:
2017-05-25 11:13:34 2577
原创 java中正则匹配的贪婪模式和非贪婪模式
贪婪模式和非贪婪模式指的是在正则匹配过程中的行为,在贪婪模式下,匹配最长的匹配值。非贪婪模式下,匹配最短的匹配值。不是所有的NFA都支持非贪婪模式匹配。 JAVA的Pattern支持贪婪和非贪婪模式,通过不同的表达式来区分:贪婪模式的书写方式有:X?X,一次或一次也没有X*X,零次或多次X+X,一次或多次
2017-05-25 10:47:36 8456
原创 使用51内核单片机检测开关状态中断函数的问题
工作中要通过CC2530检测交流电的开关状态,并做出相应的操作。原本以为是一个很简单的事情,却为此测试了两三天才算完成。首先我们的硬件设计可能比较简陋。所以很多事情得通过软件来规避问题。CC2530(51单片机内核)的IO口只能同时检查上升沿或者下降沿,因此使用两个IO口并联,获取相同的信号来检测开关的电平变化,一个检测上升沿,一个检测下降沿。实验中发现,当开关按下时,瞬间
2017-02-09 11:24:33 1580
翻译 MongoDB Aggregation, mongoDB的聚合操作
一直认为mongoDB中的Aggregation就是聚合管道,今天看了官网的介绍才有了更多的了解。聚合的作用:将多条记录放在一起,然后通过多种操作获取单一的结果。网上有很多描述,可以参考。聚合方法:MongoDB提供了聚合管道,map-reduce function, single purpose aggregation methods 三种聚合方式。 聚合管道有很多介绍,
2016-12-05 14:20:06 1530
转载 mongoDB中管道的使用,aggregate
可参考:http://www.cnblogs.com/shanyou/p/3494854.htmlaggregate的操作符含义1. $project: 数据投影,主要用于重命名、增加和删除字段2. $match: 滤波操作,筛选符合条件文档,作为下一阶段的输入 $match的语法和查询表达式(db.collection.find())的语法相同
2016-12-02 15:27:27 3573
转载 多线程与静态方法及其中的局部变量关系
static 方法 方法在该方法所属类型第一次被使用的时候加载、在该类型所在应用程序域卸载的时候卸载、也就是说 static 方法只加载一次、除非整个Domain 被卸载了。而实例方法(非静态方法),是在第一次该方法第一次调用的时候会加载、然后被缓存起来。但是中间如果有GC 的话, 就会被收集,那下次再调用该方法时,又得重新加载该方法。也就是说,实例方法有可能加载多次。总的来说,static
2016-11-01 10:05:51 1448
转载 Future, FutureTask的作用和差异
Future是一个接口,表示一个任务的周期,并提供了相应的方法来判断是否已经完成或者取消任务,以及获取任务的结果和取消任务。下面根据Future的定义介绍一下相关的接口1. boolean cancel(boolean mayInterruptIfRunning);取消任务.fail的情况:任务已经完成,已经被取消过了,无法取消。success的情况:任务还没有开始执行,其
2016-09-26 14:31:14 3285
转载 Threadlocal理解
1. ThreadLocal中只是为了方便在程序中同一个线程之间传递这个变量。 在不同的线程中使用的是threadlocal变量的副本,因此其占用内存的大小和使用private变量是相同的。但是private编号无法在整个线程间传递。2. ThreadLocal无法解决同步问题。 关于ThreadLocal写的比较好的文章:http://www.cnblogs.com/dolphi
2016-09-26 11:00:40 252
原创 java中修改文件名字,保证文件中每一行数据不重复
下面的例子是调试通过的:public class RenameFiles {public static void main(String[] args) {String dumpname="D://workworkwork//c.txt";File file=new File("D:/workworkwork");try( FileWrite
2016-08-10 16:11:42 1560
原创 java学习--构造函数
注意事项: 如果一个类里定义了构造函数,则系统不会再给定义默认的无参构造函数。如若还需要无参的构造函数,则必须显式的在类中定义。例如:public class Student{private String name="";private int age=0;public void Student(String name, int age){name=name;ag
2016-07-20 10:17:17 297
转载 Java程序内存分析:使用mat工具分析内存占用
出处:http://www.cnblogs.com/AloneSword/p/3821569.htmlJava程序内存分析:使用mat工具分析内存占用国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎
2016-07-19 17:23:47 883
转载 使用Apache Commons CLI 开发命令行工具
来源:1.简介和示例http://my.oschina.net/cloudcoder/blog/363793简述:CLI, 即command Line Interface,即命令行接口。优点: 它为Java程序访问和解析命令行参数提供了统一的接口,可以很容易的访问参数,而不必去循环String[] args.
2016-07-18 13:43:07 714
原创 在eclipse中安装 properity editor 的目的和注意事项
我需要把两个unicode格式的properity直接显示为中文字符,这样我才能知道它们的具体内容。因此想到在Eclipse中安装properity editor插件。 第一步我按照网上搜索的文章在线安装了插件,之后只有前几次能正常打开,后面再使用就会导致Eclipse崩溃,甚至workspace出现错误,打不开。最终发现我犯了一个致命的错误,在安装之前我没有检查Eclip
2016-07-15 15:06:52 1164
翻译 学习java 注解总结.
来源URL:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html注解的含义: Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过 反射来获取指定程序元素的Annotion对象,然后通
2016-07-13 22:58:55 542
原创 CC2530 的SPI通信中的问题和解决方法
打算使用TI公司的CC2530控制TI的电压芯片DAC081S101,需要用到SPI模块。因为我的开发板只能测试UART1对应的IO口,因此做了下面的测试。TI论坛提供的spi文档:http://www.ti.com.cn/cn/lit/an/swra223a/swra223a.pdf1. 两个CC2430测试,一个作为master,一个作为slave代码完全使用TI 的SPI
2016-04-12 10:46:42 6448 1
原创 CC2530 芯片的UART转485通信的实现
应用: UART控制485硬件需求:该485设备是半双工的通信方式,因此需要使用另外的IO口来控制转换芯片MAX3485的收发工作。实现原理: 代码贴了。基本方式就是在使用UART发送时,从IO口输出高电平(由电路决定),使得MAX3485处于接收状态。当发送完成产生中断时,将IO输出低电平,等待设备反馈信息。遇到的问题: 设备收不到正确的信号,无法正常工作。解决办法:
2016-03-07 16:50:39 6164 3
原创 Java中怎样将类对象自动排序,放入某个集合
需求:某一个类对象放入一个集合时,就按照类对象的参数(或者自定义的功能)自动排序,使用的时候不用另外调用集合的sort函数。可以实现此功能的集合: TreeSet ,TreeMap。原理:这两个集合提供了相应的构造函数:TreeSet(Comparator<?superE> comparator)TreeMap(Comparator<?superK> comparator)
2015-12-30 09:30:10 4080
原创 TI的CC2530使用2400波特率的步骤,协议Z-Stack Home 1.2.2.42930
支持2400波特率的步骤1.修改协议栈 (1)Components/hal/include/hal_uart.h (2)Components/hal/target/CC2530EB/_hal_uart_dma.c (3)Components/hal/target/CC2530EB/_hal_uart_isr.c
2015-12-11 17:37:04 2480
转载 JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
在百度知道里获得这个问题的答案,感觉写的非常好。所以贴出来分享:一·ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下:一、同步性ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销
2015-09-17 09:58:50 562
转载 IDATA stack overflow detected的原因
在使用IAR工具开发单片机项目时,经常会遇到:Warning:Possible Idata stack overflow detected原因大致如下:1、堆栈设置过小,在project--》option里面设置下stack的大小就可以了2、仿真器和硬件连接有问题(比如灰排线过长,我的就是这个问媒)3、硬件供电电压过低或是不正常4、在option里面没有选择debug这一项
2015-09-15 16:31:15 3245
原创 TI Zigbee中协调器和其他设备固定PANID通信,设置PANID
最近一直在研究zigbee,因为有通过固定PANID通信的需求,因此做了大量的实验,上了很多论坛,我想我必须总结一下,以免大家再走一遍我这样的路。非常感谢很多写下技术文档和在TI论坛上积极回复的工程师。一. 通过配置文件设置PANID 最简单的方式是修改f8wConfig.cfg 中的-DZDAPP_CONFIG_PAN_ID另外预定义NV_RESTORE和NV_IN
2015-05-22 10:11:58 6354 2
翻译 IAR生成文件解析,方便保存工程
在Perforce上保存代码时,有些工程文件是不需要上传到Perforce.以免在维护代码时造成不必要的麻烦。需要上传的文件及其详细介绍如下:1. Ewp文件 工程文件/project,包含代码,编译,链接选项等,不包含调试设置等信息2. Ewd 文件 工程调试设置,工程调试设置,保存上面一张图中的Debugger选项,这个可以不上传,因为每个人使用的调试设备可能不
2015-03-06 10:13:16 5469
原创 Java中利用Future和callable接口监测异步线程的理解
在Java的并发编程时,如果不需要监测程序运行的结果,那么可以使用runnable接口,直接丢给线程池就可以。因为runnabale接口是没有返回值的。 e.g.1 public class TestRun implements Runnable{ @Override public void run(){ .................................
2013-11-18 11:37:37 2451
转载 Java中怎样保留小数的有效位数,即从第一个不是0的数开始算起
今天费力好大劲儿才找到方法,分享一下,希望对大家有帮助。下面的代码作用:a=0.00001234保留完之后,结果为0.000012.而不是保留两位小数double a = 0.00001234; BigDecimal b = new BigDecimal(String.valueOf(a)); BigDecimal divisor = BigDe
2013-07-03 17:58:20 3282
翻译 TLS:Thread Local Storage
TLS全称为Thread Local Storage,是Windows为解决一个进程中多个线程同时访问全局变量而提供的机制。TLS可以简单地由操作系统代为完成整个互斥过程,也可以由用户自己编写控制信号量的函数。当进程中的线程访问预先制定的内存空间时,操作系统会调用系统默认的或用户自定义的信号量函数,保证数据的完整性与正确性。 线程局部存储(thread-local stora
2012-06-15 11:26:31 1002
转载 TSD相关的 4 个函数: pthread_key_create(); pthread_key_delete(); pthread_getspecific(); pthread_sets
在多线程程序中,经常要用全局变量来实现多个函数间的数据共享。由于数据空间是共享的,因此全局变量也为所有进程共有。但有时应用程序设计中必要提供线程私有的全局变量,这个变量仅在线程中有效,但却可以跨过多个函数访问。比如在程序里可能需要每个线程维护一个链表,而会使用相同的函数来操作这个链表,最简单的方法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构可以由 Posix 线程库维护,成
2012-06-15 11:08:46 1455
原创 如何获取display device 的相关信息,例如分辨率。(EnumDisplaySettings)
我在修改dst rectangle 的大小时,需要用到当前display device的 width 和Height,即分辨率。如果直接从driver里获取就会涉及到很多函数和变量,比较麻烦。最后使用EnumDisplaySettings()解决了问题。 现将此函数的用法和例子整理出来:函数原型: BOOL EnumDisplaySettings(LPCTSTR
2012-05-30 14:43:51 3192
翻译 glReadPixels
glReadPixels: 从frame buffer里读取一段pixelsvoid glReadPixels( GLint x, GLint y, GLsizeiwidth,GLsizei height, GLenum format, GLenum type, GLvoid*pixels)x,y:起始像素点,即矩形区域的左下角的点width,height指定像素矩
2012-05-23 16:19:11 2597
转载 the difference between the SOURCELIBS and TARGETLIBS
1 TARGETLIBS,如果一个库以DLL的形式提供给调用者,就需要用TARGETLIBS,它只链接一个函数地址,系统执行时会将被链接的库加载。比如coredll.lib就是这样的库文件。即动态链接。2 SOURCELIBS,将库中的函数实体链接进来。即静态链接,用到的函数会在我们的文件中形成一份拷贝。 总的来说就是先编译了你自己在sources里指定的源文件,在
2012-05-11 13:17:38 596
原创 dll中error LNK2001: unresolved external symbol
在windows ce 先将lib链接成dll时,出现了错误:error LNK2001: unresolved external symbol,原因有很多种,请参考MSDN: http://msdn.microsoft.com/en-us/library/aa234493(v=VS.60).aspx想了一晚上,早晨过来才恍然大悟,原来是sources文件中LINKLIBS造成的,在w
2012-05-11 13:12:43 772
转载 glFlush 和glSwapBuffer
1 glFlush就是强制刷新吧,要知道OPENGL是使用一条渲染管线线性处理命令的,一般情况下,我们提交给OPENGL的指令并不是马上送到驱动程序里执行的,而是放到一个缓冲区里面,等这个缓冲区满了再一次过发到驱动程序里执行;很多时候只有几条指令是填充不满那个缓冲区的,这就是说这些指令根本没有被发送到驱动里,所以我们要调用glFlush来强制把这些指令送到驱动里进行处理。2 glutSwap
2012-05-08 22:41:48 4269
转载 OpenGL.Stencil Buffer
本文转自:http://www.cppblog.com/init/archive/2012/02/18/165910.html3D绘图的画面内存FrameBuffer,除了要记录每个像素的颜色信息外,还要存储每个像素的Z值来做ZBuffer Test 隐藏面消除,除此以外还要分配一块Stencil Buffer 空间来记录Stencil 值。 模板缓存对应记录了帧缓存中每个像素的模板
2012-05-08 22:13:11 3504
原创 怎样查看debug机上video memory 和system memory 的大小
1 video memory: CBIOS 里有一个选项,机FBmemory(FrameBuffer)memory2 system memory 在PB 工程的属性里,环境变量IMGRAM256,IMGRAM512等设置,在CE7中不需要设定大小,OS会检查内存大小和video memory的大小,两者之差就是system memory大小
2012-04-16 16:57:07 1178
原创 Release Directory Modules
参考资料来自MSDN:http://msdn.microsoft.com/zh-cn/gg154272 兜了一圈,俺还是决定使用Visual Studio 提供的这个功能,我的工作环境是windows ce 7.0 哦。Release Directory Modules的作用是决定你可以加载release 目录下的哪些模块,在Vistual Studio2008中选择->
2012-04-11 18:45:11 629
原创 OPTIONAL_DIRS and DIRS
1 在dirs文件中使用OPTIONAL_DIRS文件进行路径选择的话,build工具会首先把dirs文件指定的路径build完之后,才会build OPTIONAL_DIRS指定的文件路径,而不会因为OPTIONAL_DIRS和dirs 的前后顺序而改变。可以参考MSDN上的说明:http://msdn.microsoft.com/en-us/library/windows/hard
2012-04-10 16:31:11 778
原创 在调试Windows CE driver时需要注意的问题
Error(s) in directory "G:\shared_with_VPC7.0\osdesign_all\OSDesign_ogl\OSDesign_ogl\Driver_OGL_49786\Driver\".{log="G:\shared_with_VPC7.0\osdesign_all\OSDesign_ogl\OSDesign_ogl\Driver_OGL_49786\Driv
2012-03-26 15:34:59 714
转载 error C2275: 'xxx' : illegal use of this type as an expression
今天在Windows CE7上修改代码时出现了该错误,历经千辛,中午找到了答案:(源自:http://www.cnblogs.com/joeblackzqq/archive/2011/04/13/2014714.html)(declaration)must placed on the beginning of function, In this case, the co
2012-03-26 13:05:36 4111
原创 在Wince的Catalog中添加驱动组件
在wince6.0 和wince7.0中已经没有CEC文件管理器,因此需要手动修改相应的.pbcxml文件将自己的驱动添加到Catalog目录里,以向Catalog/ Device Drivers/Display 添加驱动组件为例,环境为wince6.0:1. 打开路径 $(_WINCEROOT)/ PUBLIC/COMMON/OAK/DRIVERS/DISPLAY,将驱动文件
2011-12-09 13:05:10 2878
转载 sources文件中的CDEFINES,LDEFINES
1 CDEFINES=$(CDEFINES) -DCEDDK_USEDDKMACROCDEFINE是向C语言的编译器传输预定义宏,相当于你在代码里写#define CEDDK_USEDDKMACRO!IF "$(BSP_USEDVS)" == "1"CDEFINES=$(CDEFINES) -DDVS_EN!ENDIF这一段是根据环境变量
2011-12-08 11:52:06 1441
语音和自然语言控制智能家居输出Zibee3.0协议实例源码
2017-08-31
windows java应用程序录音并转为wav格式,使用欧拉蜜语音识别java sdk源码
2017-08-06
developing application of opengl es
2011-05-13
OpenGL ES2.0 编程指导
2011-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人