定时在Linux里是很简单的事情,在Win里有计划任务,也不难

1、写PHP

2、写BAT文件

3、计划任务里添加BAT

如果是利用ThinkPHP,直接写php.exe -q cron.php就不好使了。

这里可以利用curl,其实就是GET一个URL,BAT文件里写curl url即可。

异地数据库如何同步?

最近有一个SQLserver和MySql的同步需求,看了一些资料。

0、直接备份

备份时候,Destination全删,重新从Source复制,简单粗暴,适合数据不大的情况。

1、简单备份

Source数据只增不删不改,且有自增ID,Destination只需要查询ID之差在应用层上编写查询和写入语句。

2、基于Trigger

基于trigger的方式获取增量变更,CRUD触发。

一种基于触发器的数据同步系统的研究及关键技术实现

3、基于日志

基于数据库的日志解析,获取增量变更进行同步。

数据库同步可以认为是同步操作记录,CRUD的每个记录如果被日志记录,在Destination只要重新执行一遍日志即可。

例如canal 是阿里巴巴mysql数据库binlog的增量订阅&消费组件。

https://github.com/alibaba/canal

4、一些软件,几乎都要收费

SyncNavigator $(不再更新?)***

SymmetricDS(免费的没有UI)

RedGate $

Sql Delta $

D-Softs $

SQLITE-SYNC

https://convertdb.com/

 

5、求大神指点

如何最简单从SQLserver同步到MySql呢?

MySql主从貌似很简单的样子 http://369369.blog.51cto.com/319630/790921

使用STM32中断来捕获输入信号频率,定周期数个数

进入中断时,首先应该读取数值,因为进入中断后,马上第二个中断就开始计时

如果不马上读取,即使多了一句话,测量的时间就不准了

LaunchPad G2553 低功耗测量
手册里写G2553最低功耗在 LPM3下有0.7-0.9uA
注意默认LaunchPad没有加晶振
所以为了达到这个目的:

1、所有管脚输出低电平
2、ACLK设置为VLOCLK,不设置会有5uA左右

直接用万用表串联测量J3跳线的VCC引脚,实测有0.7uA

01 #include “msp430.h”
02
03 int main( void )
04 {
05 /* Stop watchdog timer to prevent time out reset */
06    WDTCTL = WDTPW + WDTHOLD;
07
08 /* ACLK设置为VLOCLK */
09    BCSCTL3 |= LFXT1S_2;
10
11    P1DIR    = 0xFF;                 /* All P1.x outputs */
12    P1OUT    = 0;                    /* All P1.x reset */
13
14    P2DIR    = 0xFF;                 /* All P2.x outputs */
15    P2OUT    = 0;                    /* All P2.x reset */
16
17 /* 定时器配置 */
18    CCTL0    = CCIE;
19    CCR0    = 50000;
20    TACTL    = TASSEL_1 + MC_2;      /* ACLK, contmode */
21
22 /* 进入低功耗LPM3 */
23    __bis_SR_register( LPM3_bits + GIE );
24 }
25
26
27 #pragma vector=TIMER0_A0_VECTOR
28 __interrupt void Timer_A( void )
29 {
30    P1OUT |= BIT0;
31    __delay_cycles( 50000 );
32    P1OUT &= ~BIT0;
33 }

1、APM
http://diydrones.com/
主控芯片:ATMEGA2560

2、PX4
https://pixhawk.org
主控芯片:168 MHz Cortex M4F CPU (256 KB RAM, 2 MB Flash) / STM32F427

3、Crazyflie

Frontpage


主控芯片:STM32F4

4、MultiWii/MWC(MultiWii Copter)

http://www.multiwii.com/
主控芯片:ATMEGA/Arduino

5、AutoQuad 德国

Home


https://viacopter.eu/
主控芯片:STM32F405

6、MikroKopters 德国
http://www.mikrokopter.de/en/home

7、Crazepony 中国
http://www.crazepony.com/
主控芯片:72MHz的32位Cortex-M3架构处理器STM32

8、匿名四轴 中国
http://www.anotc.com/
主控芯片:STM32F103 72M

9、KK
官网不详

参考资料:
http://www.arduino.cn/thread-8430-1-1.html
http://www.zhihu.com/question/24312316

在学习STM32的ADC和DMA时候,发现了很多有意思的事情,这里记录一下,网上的很多回答不是很好。

1、DMA_BufferSize到底是什么?

Specifies the buffer size, in data unit, of the specified Channel. The data unit is equal to the configuration set in DMA_PeripheralDataSize or DMA_MemoryDataSize members depending in the transfer direction

其实,这个缓冲区概念不是很准确,准确的应该是每次DMA传输的数据数量。在库函数stm32f10x_dma.c中可以找到:

DMAy_Channelx->CNDTR = DMA_InitStruct->DMA_BufferSize;

那这个 CNDTR 是什么呢?在STM32参考手册里有说明, Number of data to be transferred (0 up to 65535). The transfer stops once the DMA_CNDTRx register reaches zero. 它就是一个计数器,这个计数器的值就是DMA_BufferSize,每传送一个数据就减一,变成0的时候,从ADC外设到内存的传输(或相反)停止。此时可产生中断信号。假设DMA_BufferSize=10,那么ADC采集10次后,DMA就停止传输ADC的采集数据了。

那为啥取名叫buffer 呢,我猜是为了和DMA_MemoryInc_Enable配合。虽然传输计数是减少的,但是内存地址是增长的。在声明DMA_MemoryBaseAddr时候,其实DMA的就指向(是指向,不是开辟!)一个大小为DMA_BufferSize的数组,数组的开始地址为DMA_MemoryBaseAddr。这个数组就是缓冲区。

每次ADC采样后,就通过DMA把数据放在内存中,从DMA_MemoryBaseAddr+0地址开始放,直到DMA_MemoryBaseAddr+DMA_BufferSize-1,此时CNDTR变成0,传输结束。

2、DMA_BufferSize的大小应该取多少?

上面的讨论很多同学就疑惑了,这个大小应该取多少呢?暂时我建议你需要多少数据就写多少。

__IO uint16_t ADC_ConvertedValue[NUM];

一般,我们会定义一个变量存我们的数据,然后

DMA_InitStruct.DMA_BufferSize = NUM;

DMA_InitStruct.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;

这时候,缓冲区的大小和我们定义的数组一致,也方便我们操作。

但是如果DMA_BufferSize大于NUM会怎么样?根据上面问题1的解释,缓冲区地址其实就是我们的ADC_ConvertedValue地址,如果DMA_BufferSize为NUM+N,其实缓冲区就是ADC_ConvertedValue[NUM+N],再说一遍,Buffer的首地址和ADC_ConvertedValue相同,如果我们用指针访问,可以很好的验证。

__IO uint16_t *p;
p=ADC_ConvertedValue;

////省略代码,printf是串口通信改写的函数….

printf(“%4x\n”,ADC_ConvertedValue[NUM-1]);
printf(“%4x\n”,*(p+NUM));

printf(“%4x\n”,*(p+NUM+1));

你会很吃惊的发现,*(p+NUM)里面也有我们采样的数据。如果我们用ADC_ConvertedValue[NUM]访问则会出错,因为超出数组范围了。也就是说DMA_BufferSize可以大于NUM,但是大于NUM的地址属于不被定义的内容。从编程角度,它使用了未知的区域,如果这个地址定义别的变量,那么就会误操作这个变量。

__IO uint16_t ADC_ConvertedValue[NUM];
__IO uint16_t a[N];

比如我们定义时候,紧跟ADC_ConvertedValue定义一个a;一般编译器会把这两个变量的地址连在一起。那么在运行程序时候:

printf(“%4x\n”,ADC_ConvertedValue[NUM-1]);
printf(“%4x\n”,*(p+NUM));

printf(“%4x\n”,ADC_ConvertedValue[NUM-1]);
printf(“%4x\n”,a[0]);

是一样的数据。

很危险吧。a[0]的数据就被DMA覆盖了。

 

3、ADC多通道DMA的真正采样顺序是什么?

很多同学想ADC多通道采样,比如两个通道,每个通道采10次。那么,到底是先把通道1采集10次,再轮到通道2采集10次。还是通道1和2轮流采集,第一次,先通道1,再通道2。第二次,先通道1,再通道2。直到第10次。这里假设的通道1比通道2优先级高。

很简单,ADC手册里写了,是通道1和2轮流采集。

你也可以做个实验,定义ADC_ConvertedValue[NUM],把两个通道接到不同电平,然后依次输出ADC_ConvertedValue[i],很明显可以看到数值交替。

4、ADC多通道内存数组为何定义为?

一般我们定义二维数组来存放采集的数据。如:

ADC_ConvertedValue[Sample_Num][Channel_Num]

那么为啥是这么写呢?不能是ADC_ConvertedValue[Channel_Num][Sample_Num]吗?

这个翻翻C语言的教材,C数组是按行存储的。加上ADC是轮流采样通道的,因此ADC_ConvertedValue[Sample_Num][Channel_Num]刚好每一列都是通道采样值。

 

5、DMA_Mode 的DMA_Mode_Circular与DMA_Mode_Normal 区别?

DMA_Mode_Normal ,普通模式: 在DMA传输结束时, DMA通道被自动关闭,进一步的DMA请求将不被满足。也就是说当传输结束时候,DMA就不工作了。要想工作要重新配置DMA。

DMA_Mode_Circular,循环模式:用于处理一个环形的缓冲区,每轮传输结束时数据传输的配置会自动地更新为初始状态, DMA传输会连续不断地进行。意思就是说,每次CNDTR变成0时候,就自动重新按照程序初始化时候的DMA配置再配置一遍。然后重新运行。

In circular mode, after the last transfer, the DMA_CNDTRx register is automatically reloaded

with the initially programmed value. The current internal address registers are reloaded with
the base address values from the DMA_CPARx/DMA_CMARx registers.

6、DMA中断时候,还在传数据吗?

DMA在循环模式时候,如果中断了,那么DMA还工作吗?答案是DMA仍然工作!

也就是说进入中断后,DMA还在传数据,ADC_ConvertedValue里的值还是变化的!

为什么?想想DMA是干什么的吧,中断是CPU的工作。DMA本来就和CPU没关系的。

 

未完…

Class ‘Home\Controller\QRcode’ not found

THINKPHP3.2 整合phpqrcode 生成二维码,QRcode::png不好用,解决方法如下:

 

<?php
public function qrcode($url){
//引入phpqrcode文件.源码放在vendor/qr文件夹里
vendor(“qr.phpqrcode”);
//纠错级别, 纠错级别越高,生成图片会越大
//L水平    7%的字码可被修正
//M水平    15%的字码可被修正
//Q水平    25%的字码可被修正
//H水平    30%的字码可被修正
$level = “L”;
//图片每个黑点的像素。
$size = “8”;
//生成图片 第二个参数:是否保存成文件 如需要保存文件,第二个参数改为文件名即可,如:’qrcode.png’
$qr = new \QRcode();
//p($url);die;
$qr->png($url, false, $level, $size);
}
?>

_t 代表type,是被typedef定义的。

一般不推荐使用,和什么POSIX的约定有关。用也可以,加前缀比较安全,如ngx_str_t.

参考文献:

[1] http://www.cnblogs.com/swnuwangyun/archive/2011/06/10/2077389.html

[2] http://stackoverflow.com/questions/3225386/if-i-do-a-typedef-in-c-or-c-when-should-i-add-t-at-the-end-of-typedefed

[3] http://stackoverflow.com/questions/231760/what-does-a-type-followed-by-t-underscore-t-represent

 

———————-部分回答————–

As Douglas Mayle noted, it basically denotes a type name. Consequently, you would be ill-advised to end variable or function names with ‘_t’ since it could cause some confusion. As well as size_t, the C89 standard defines wchar_t, off_t, ptrdiff_t, and probably some others I’ve forgotten. The C99 standard defines a lot of extra types, such as uintptr_t, intmax_t, int8_t, uint_least16_t, uint_fast32_t, and so on. These new types are formally defined in <stdint.h> but most often you will use <inttypes.h> which (unusually for standard C headers) includes <stdint.h>. It (<inttypes.h>) also defines macros for use with the printf() and scanf().

As Matt Curtis noted, there is no significance to the compiler in the suffix; it is a human-oriented convention.

However, you should also note that POSIX defines a lot of extra type names ending in ‘_t’, and reserves the suffix for the implementation. That means that if you are working on POSIX-related systems, defining your own type names with the convention is ill-advised. The system I work on has done it (for more than 20 years); we regularly get tripped up by systems defining types with the same name as we define.

shareimprove this answer
edited Sep 8 ’09 at 1:18

Orion Edwards
59.6k32155227
answered Oct 23 ’08 at 22:29

Jonathan Leffler
343k45357637

it seems reasonable that OS and common runtime libraries define types with genericish names; but shouldn’t your company’s types also be prepended with a prefix or something? – Toybuilder Oct 23 ’08 at 22:38

Yes, they should. Unfortunately, I wasn’t in charge of the naming convention at the time when it was used. And global search and replace isn’t something that’s sanctioned – though it could be used to fix a lot of problems, even in a monstrous code base. – Jonathan Leffler Oct 23 ’08 at 23:29
3
I use _type instead of _t on my typedefs precisely to avoid that. – CesarB Oct 23 ’08 at 23:51

@Jonathan Leffler — What naming convention would you use for user-defined types? – J. Andrew Laughlin Apr 18 ’11 at 21:43
5
@Andrew: if you have a convenient abbreviation to use as a prefix, then you may be safe to use abbr_xxxxx_t type names. Without such a prefix, you may get caught any time. Generally, the standardized _t types use all lower-case (FILE and DIR are two exceptions, twice – all caps, and no _t), so you could use CamelCase_t with moderate safety, with or without the leading caps. The system I mainly work on tends to live dangerously and use _t anyway, but it has bitten us on occasions. I tend to use CamelCase without a suffix for my own work; my functions are usually all lower-case. – Jonathan Leffler Apr 18 ’11 at 22:45

@JonathanLeffler, I’ve started using that convention, CamelCase for types, lower_case for functions. I searched this question hoping I wasn’t the only one. Thanks for the validation! – Austin Mullins Jun 13 ’14 at 22:26

 

三维软件的种类非常之多,对于一个非机械专业的学生不知该学什么好,虽然什么东西学好了都很牛,但是免不了比较一番,百度一下,发现@zenki1984的回答很好,这里转载一下,2015年2月。

作为非专业工业设计类人士,我个人选择了:
二维:AutoCAD
三维绘图:Solidworks
三维渲染:KeyShot 与 CINEMA 4D

==================

三维软件,分两类,这两类的用途有本质区别。一类是工业设计类软件(如机械设计,结构设计,产品设计),一类是三维动画软件。

(一)
工业设计类三维软件,其实就是三维版的CAD。这类软件主要用于机械,冶金,产品开发,优点是尺寸非常精确,制作的模型,可以被工厂生产成实物,比如你做了个汽车模型,工厂就可以根据这个模型,生产出一辆汽车来。缺点是,建模过程非常死板,做些方方正正的模型虽然很容易,但想要制作比较复杂的造型(比如动物,植物等),非常困难。这类软件都存在一个通病,就是渲染能力非常差,也就是说,最终出效果图的时候,图片画面很生硬,不逼真。所以通常都要结合动画软件来进行渲染,这里推荐C4D,两者一起学,有相辅相成的作用,一点也不冲突。这类软件的最终成品,并非是三维图,而是通过三维,来反求一张二维工程图。

这类软件,常见的有四种,分别是SOLIDWORKS,PRO/E,UG,CATIA

1、SOLIDWORKS主要优势是钣金设计,价格最便宜。适合做一些小型产品,如手机,电脑机箱等。最好学,功能也最弱。SOLIDWORKS最大的优点是简单好学(相对于其他软件来讲),定位低端的原因,主要在于它有两个缺点:一是曲面功能比较差,二是只支持设计,不支持编程 (当然这是达索公司刻意为之,为了避免与CATIA产生冲突,没有任何一家公司,会让自己旗下的两款产品产生竞争关系)。不过以上两个缺点,可以通过安装插件,在一定程度上得到改善。

2、PRO/E是最主流的软件,出图难用,学起来最难。模具领域应用也比较早,所以比较流行。ProE在机械电子玩具行业用的多一些

3、UG的强项是数控编程。高端的软件,UG在航空航天类用的多(不过国内航空五所也用solidworks) 汽车类用做设计的也比较多 (奇瑞 catia 通用ug)另外UG的加工不错,在欧洲 用的最多的是pow mill和ug 波音公司采用的也是ug加工 。

4、CATIA是由军火公司开发的软件,通常用于大型设备的设计制造。大名鼎鼎的阵风战斗机,就是由CATIA开发而成。CATIA和SOLIDWORKS如今是同一家公司的软件,算是同门师兄弟。CATIA定位大型装备制造业,可以看成是SW的加强版,但相应的,比较难学,SOLIDWORKS定位小产品设计。做机械设计,产品开发,最好的是CATIA。小到打火机,大到航空母舰,都可能是由它设计而成。

(二)
三维动画软件,看名字便知道,这类软件最擅长的是动画,而且建模很随意,即使没有尺寸,也能凭感觉进行制作,可以有效的制作出眼睛能看到的几乎任何物体,而缺点也是很明显的,模型仅能用来看,而不能被生产(可以3D打印),通常用于电影特效,动漫设计,建筑表现,图片制作等围绕视觉艺术的行业。 另一类是CG类建模,这类模型,通常仅追求外形相似,并不要求特别精确,即使没有尺寸,也可以完全凭感觉快速的建出各种形状,就像捏泥人一样,并不需要特别规定公差是多少,只要看着符合比例就可以。一般用于建筑,动画,电影等对尺寸要求并不是特别高的情况下。优点是建模过程没那么多束缚,模型可以做的很有艺术性

这类软件,常见的也是四种,分别是MAYA,3DMAX,C4D,SOFTIMAGE

1:3DMAX——因为3DMAX的效果和功能在同类软件里是最差的,不符合电影公司的需要,而各大电影公司全都看不上3DMAX。。纷纷拒绝。。于是3DMAX始终都找不到进入好莱屋的路子,一直到今天3DMAX也没制作过任何一部商业电影,于是AUTODESK就把这个软件推销到了建筑行业。。建筑公司用它来做建筑效果图,尤其以中国最为普及。。逐渐成为了中国建筑行业的标准软件

2:LIGHTWAVE——LIGHTWAVE制作了《泰坦尼克号》等成功的电影。。获奖无数。。但软件公司却没因此赚到钱。。可这个软件却因此在日本广为人知了,于是被制作电子游戏的厂商们纷纷引进到日本,用来制作游戏,。不过在中国这个软件的知名度很低。。用户寥寥无几,

3:CINEMA 4D——这个软件跟别的软件是反着来的,它一开始压根就没打算在电影业混,一开始制作出来,是用来做产品外观设计的,比如宝马汽车,三星手机等就是用这个软件来设计产品外型的,但是它的功能和人性化等方面,具备众多优点,完全可以胜任电影的制作。。果然有一天,它被电影公司看中了,之后就一发不可收拾的制作了《蜘蛛侠》《阿凡达》《2012》等众多轰动世界的大片,最近几年在中国也逐渐开始流行。。由于和影视后期软件——AE可以无缝结合,因此主要流行于制作电视节目,广告等视频相关的行业。另外还有它的本行——工业渲染和产品外观设计做影视动画,工业渲染,最好的是C4D,(所向披靡的新教主)理由:《阿凡达》《2012》《蜘蛛侠》《变形金刚》,出道虽晚,却已经把在好莱坞称霸多年的MAYA搞得满目狼藉,以宝马汽车和三星手机为代表的产品表现,又引领了一个新的时代。

4:MAYA——这个软件一直监守本行,在很多年的时间中一直在电影业扮演着幕后老大的角色,但是自从被AUTODESK收购之后,MAYA就开始逐渐退步,在CINEMA 4D和HOUDINI被挖掘出来之后,不思进取的MAYA逐渐丧失了技术优势。。很多功能相比之下已经显的有些落后了。。后又因数字领域倒闭,这个软件逐渐的在好莱屋开始衰退,很多特效公司开始放弃MAYA。。但是由于之前是行业老大,因此尽管技术上已经并不太先进了,但毕竟还有着众多用户基础,因此今天在好莱屋仍然还占有着一席之地。。只是我不看好它的未来。做游戏开发,CG行业,最好的是MAYA,(风采依旧的老天王)理由:尽管C4D近年做了《剑灵》和《最终幻想14》,但在CG行业,MAYA仍还是压的住的,以暴雪和AE为代表,MAYA依旧是CG行业的统帅MAYA比较适合动漫行业,优点是适用度强,缺点是比较难学

5、SOFTIMAGE已停止开发,前途难料,不建议学习

6、做曲面,复杂模型,最好的是RHINO,(专攻建模的小犀牛)理由:如果只做正正方方的模型,那没什么可吹嘘的,如果你要做一条鲨鱼,一只蚊子,又要尺寸精确,那RHINO就是你的不二之选

这类软件涉及的行业多种多样,因此使用哪个软件要根据自身行业来选择。。比如与建筑相关的,首选3DMAX,原因在于设计院和房地产公司全是用3DMAX,你用别的软件,跟同事配合就是个严重问题,。而动画和影视行业,建议从CINEMA 4D和MAYA之中选择,因为它们确实相比3DMAX要更有优势,因为3DMAX不具备一些高端动画的必备功能。。比如表达式,3D(需要戴眼镜观看的那种3D电影)等功能,都是3DMAX所欠缺的,尤其是没有表达式,导致3DMAX无法胜任大型动画。

举个例子:
假如你想做100个方块,而这100个方块的大小各不一样。。旋转角度各不相同,用3DMAX做,需要先阵列出100个大小和角度完全相同的方块,再一个一个的去缩放这些方块,让它们大小不一。再一个个的去把它们旋转成不同角度,这就需要几百个步骤的操作,可能需要好几天才可以完成,用MAYA或C4D做,同样是阵列100个大小和角度一样的方块。。之后创建表达式,输入缩放随机和角度随机的命令。。再指定随机的范围。。这些方块就会变的大小,角度各不相同。。仅仅需要4个步骤,几分钟就能搞定,而MAYA和C4D之间,个人推荐C4D,因为MAYA非常难,学习过程是极其漫长的,需要好几年,C4D相比之下,难度大约等同于3DMAX,可在两三个月内掌握,而且尽管现在MAYA在国内的用户数量是高于C4D的,但在流程上C4D却比MAYA要先进和高效的多。。由于有ADOBE公司保驾护航,现在又和AE可以无缝结合,把老态龙钟的MAYA赶下台几乎只是时间问题,其中3DMAX和C4D相对简单,MAYA很难,个人推荐C4D,因为它是由目前最先进的技术开发而成,其他三个则相对技术古老一些,C4D不仅效率很高,而且效果也不错,尤其得益于更先进的软件结构,导致制作过程变得轻松了很多,动力学,毛发等功能,像是在玩游戏,《阿凡达》《2012》《变形金刚4》《蜘蛛侠4》等电影,《最终幻想14》《剑灵》《塞尔达传说Wii U》等游戏,均是由C4D主刀,

从今技术角度分析,建模按照方法不同,分为两种方式:
一类是NURBS建模(或者叫曲面建模),一类是POLYGONS建模(或者叫多边形建模,简称POLY),C4D的奇怪之处,也正在于此,NURBS通常是先画线条,之后对这些线条施加命令,形成模型,比如挤出,放样,扫描,这些就是常见的NURBS建模命令,建模过程比较抽象,但可以制作出很圆滑的过度,POLY建模是指,对模型的点,线,面进行编辑,就是前面提到的捏泥人,最常用到的命令就是挤压,焊接,之类的命令,建模直观,但棱角分明,工业类建模软件,全都是NURBS建模,因为这类软件没有点,线,面的概念,CG类的建模软件,通常是既有NURBS,又有POLY,这也是这类软件建模可以比较随意的原因,区别只是软件不同,这两种方式所占的比重不一样,按照老外的说法,大脑发达的人,比较适合NURBS建模,小脑发达的人,适合POLY,因为NURBS比较考验人的思维能力,而POLY不需要太费脑子,但过程却很枯燥,MAYA,是70%的NURBS + 30%的POLY,所以MAYA适合比较聪明,但没什么耐性的人,3DMAX,是70%的POLY + 30%的NURBS,而3DMAX适合有耐性,但不怎么聪明的人

参考网址:
[1]http://zhidao.baidu.com/link?url=5erEMX6Wzw4SAWdBkJWgsRBUiRnbnSAcCTt_xPIIvUTlA5E50QlGWnJOy_izvVZh16KDzIzba_o6NH0gb7Wj-juOVRASY_MrhmnhHYE74Q_
[2] http://zhidao.baidu.com/question/1924432904364782187.html?from=pubpage&msgtype=2
[3] http://zhidao.baidu.com/question/1860975544243867227.html?from=pubpage&msgtype=2
[4]http://zhidao.baidu.com/question/1958392644268042860.html?from=pubpage&msgtype=2

俗话说万事开头难,一个好的开题会使后面的研究轻松很多,因此开题报告前的工作量是非常大和重要的。古人又云,凡事预则立不预则废, 因此开题报告的质量直接决定了能否在有限时间内完成有关课题。实际上开题报告就是讲why what how的。

 

开题报告应从以下几个方面来写:
1、一个好的题目
好的题目应该小而具体,不能空泛,不能很大。

 

2、课题的背景和意义
首先是你为啥做这个,你需要为你的工作找到辩护理由

 

3、课题的研究现状
研究现状很重要,没有文献阅读,文献综述,是提不出一个好题目的,吃透现状。资料来源于文献,网络,书籍,产品。但在汇报中不要多讲,因为汇报时候更重要的是你的方法。

 

4、研究目标和成果
这就是你要做什么了,你需要做哪些东西,你的预期成果是什么,要非常具体,不能假大空,和题目要相关。成果要么有功劳(创新性)要么有苦劳(工作量)。

 

5、研究方法
详细讲讲你要怎么做,用到哪些硬件,原理,软件等等

 

6、创新点和难点
你的东西到底好在哪里,有困难吗,有条件吗,怎么解决

 

7、技术储备
介绍你有这个能力完成这个目标,最重要的是你以前完成过什么,做过什么东西,发表过什么论文

 

8、时间节点
Deadline是非常重要的,突击是个很辛苦,风险很大的事情

 

9、总结

 

10、参考文献

 

=======================================
最后,灵活修改开题报告,创新性研究的风险很大,万一前期调查不充分,或者水平有限完成不了,要重新制定可行方案,不能在一棵树上吊死。写作要深入浅出,内行觉得有料,外行觉得高大上