IAP15 + MATLAB + Serial Chart综合测试

今天花了一个上午写了个略微拉风的程序,IAP15F2K61S2开了定时器0中断,每5ms中断一次,然后我把按键的消抖包括按键功能部分移到了定时器中断里,第一次这么干,好激动!!!之后使用了printf来发送正弦表,波形显示在电脑端的Serial Chart中,正弦表使用matlab产生:

先上Serial Chart的效果图(0位置处有抖动,暂时也没查出来是哪的问题,是printf输出格式问题么?):IAP15 + MATLAB + Serial Chart综合测试_第1张图片


工程的组织目录如下:

IAP15 + MATLAB + Serial Chart综合测试_第2张图片


程序说明:

/**********************************************************************
作    者:weifengdq(联系方式:[email protected])
最后修改:2014-4-8
版    本:V1.1
修订历史:使用了printf来发送数据(可以发送小数)
 删除了Key_Scan()函数
 独立按键的扫描放在了定时器0的中断服务里
 按键的功能部分移到了定时器0的中断服务里
主控芯片:IAP15F2K61S2
外围器件:LED
 Key
 Buzzer
 LCD1602
程序说明:测试按键、LED、蜂鸣器、1602液晶
 测试定时器0中断(中断服务函数在timer.c中)
 串口使用printf来发送,可以发送浮点数
 使用printf来打印一个正弦表,在Serial Chart软件中显示
*************************************************************************/

matlab的代码(使用2011b-64bit版本):

/*************************************************************************
 %% 正弦表的产生 
 %先在matlab工作目录下新建一个wf_sin.txt文件,运行以下程序
 x=0 : pi/100 : 2*pi;          %x取值范围0~2*pi;步进长度pi/100,共计201个数
 y=sin(x);
 fid=fopen('wf_sin.txt','w');  %以写的方式打开wf_sin.txt文件
 fprintf(fid,'%.2f, ',y);      %注意手动删除掉最后一个逗号
 fclose(fid);                  %关闭文件
*************************************************************************/


Serial Chart代码:

[_setup_]

port=COM4  
baudrate=115200
 
width=1200
height=400
background_color = black
 

grid_h_origin = 0
grid_h_step = 200
grid_h_color = #EEE
grid_h_origin_color = #CCC


grid_v_origin = 0
grid_v_step = 100
grid_v_color = #EEE
grid_v_origin_color=#CCC


[_default_]
min=-100  
max=100



[pulsetime0]
color=blue
min=-1
max=1


Serial Chart 的使用方法可以参见我翻译的文章:

链接:http://pan.baidu.com/s/1bnrKvH9 密码:ohvt

原帖是我在去年发表在开源电子网的:

http://www.openedv.com/posts/list/21627.htm

点击打开链接

至于串口端总是接收到大量的0,换了串口调试助手依然如此,这个问题暂时无解,求高手作答。。。

IAP15 + MATLAB + Serial Chart综合测试_第3张图片


最后上传 全部源代码:

链接:http://pan.baidu.com/s/1bnBxlx1 密码:hrxp

你可能感兴趣的:(源代码,chart,matlab,serial,IAP15F2K61S2,正弦表)