1 / 16
文档名称:

android-蓝牙-单片机-显示波形.doc

格式:doc   大小:243KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

android-蓝牙-单片机-显示波形.doc

上传人:帅气的小哥哥 2024/5/12 文件大小:243 KB

下载得到文件列表

android-蓝牙-单片机-显示波形.doc

相关文档

文档介绍

文档介绍:该【android-蓝牙-单片机-显示波形 】是由【帅气的小哥哥】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【android-蓝牙-单片机-显示波形 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。(希望可以上传成功)写在前面:最近一个月,自己尝试了开发一款手机应用,通过单片机的串口连接蓝牙模块发送数据,然后在手机端通过手机蓝牙收取数据,并将数据显示出来,其实这就是一个串口通信要做的事情,但是我要做的除此之外,还要将数据通过图像画出来。即是要求单片机通过AD采集模拟信号把转换出来的数字量通过蓝牙发送,在手机端将采集到的波形画出来。此文主要涉及蓝牙操作,画图,等。也给爱好单片机的一份参考。关于单片机连接的蓝牙是一个淘宝上买的模块,推荐个网址:http://item./?spm=**********.&id=**********&我是在这里买的,其中店家会给资料说明。Byways(没有抄袭任何人的原作,只是查找资料,看别人程序,自己开发,很大一局部来自androidsdk/doc/,因为自己深感网上资料冗杂,在此整理,借助百度文库的话,让每个人能有平等提升自己的时机,希望像我的android启蒙老师mars一样提供给大家免费的资料,讨厌那些需要积分的网站,比方程序员联合开发网,比方CSDN,因为没有积分,好几个看上的资源都不能下载。个人微博:http://blog./u/2698171342)程序目前问题:我成认自己现阶段的程序存在bug,但已经根本完成,关于最后的退出处理,会抛出异常,这个我还没解决,不过貌似应该是没有结束线程出现的问题;还有关于程序我几乎全部使用全局变量,因为比较简单,便于操作,所以,呵呵,但是我知道这样肯定不好;另外我本想用几个不同的activity和service但是在其中的通信中用到播送,消息队列等,但我一直没有收到数据,所以最后不得已全部在一个activity中实现,这个表示初学也有很大困难,本例为我后者程序,也就是版本二吧。我会改善这些问题,因为我希望自己可以追求完美。先展示结果:图一是最后的图,图二只是演示可以画出正弦波,其中按钮开启蓝牙是直接默认连接一个设备,按钮sin是开始接受蓝牙数据并画图,图示中由于没有开蓝牙,故一直接收数据一直为0所以是画出的一条直线,关于去除,是因为在画布下方还有一个TextView空间使用来显示接受到的数据的。图一图二关于程序:其中的注释我已经写的很清楚在manifest中,添加蓝牙权限:</application> <uses-permissionandroid:name=""/><uses-permissionandroid:name=""/></manifest>:<?xmlversion=""encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas./apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="***@string/hello"/><LinearLayoutandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:orientation="horizontal">"<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/button"android:text="***@string/button"/> <Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/sin"android:text="***@string/sin"/> <Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/clear"android:text="***@string/clear"/></LinearLayout> <SurfaceView android:id="@+id/show" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/myview" android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="***@string/myview"/> /></LinearLayout>:<?xmlversion=""encoding="utf-8"?><resources><stringname="hello">HelloWorld,OscilloscopeActivity!</string><stringname="app_name">Oscilloscope</string><stringname="button">开启蓝牙</string><stringname="myview">参数显示:</string><stringname="sin">sin</string><stringname="buttonstart">搜索</string><stringname="buttonselect">选择设备</string><stringname="buttonsend">发送</string><stringname="input">pleaseinput</string><stringname="clear">去除</string></resources>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lassOscilloscopeextendsActivity{/**Calledwhentheactivityisfirstcreated.*/ finalintHEIGHT=320;//设置画图范围高度finalintWIDTH=450;//画图范围宽度finalintX_OFFSET=5;//x轴〔原点〕起始位置偏移画图范围一点privateintcx=X_OFFSET;//实时x的坐标intcenterY=HEIGHT/2;//y轴的位置TextViewmyview=null;//画布下方显示获取数据的地方finalUUIDuuid=("00001101-0000-1000-8000-00805F9B34FB");//uuid此为单片机蓝牙模块用//还有其他的uuid,这个可以再百度查到,暂不清楚其中的差异finalBluetoothAdaptermBluetoothAdapter=();//获取本手机的蓝牙适配器staticintREQUEST_ENABLE_BT=1;//一个常量而已,开启蓝牙时使用BluetoothSocketsocket=null;//用于数据传输的socketintREAD=1;//一个常量,用于传输数据消息队列的识别字onnectedThreadthread=null;//连接蓝牙设备线程staticinttemp=0;//临时变量用于保存接收到的数据privateSurfaceHolderholder=null;//画图使用,可以控制一个SurfaceViewprivatePaintpaint=null;//画笔SurfaceViewsurface=null;//Timertimer=newTimer();//一个时间控制的对象,用于控制实时的x的坐标,//使其递增,类似于示波器从前到后扫描TimerTasktask=null;//时间控制对象的一个任务/*关于画图类的几点说明*SurfaceView是View的继承类,这个视图里*内嵌了一个专门用于绘制的Surface。可以控制这个Surface的格式和尺寸。*SurfaceView控制这个Surface的绘制位置。**实现过程:------>*()获得SurfaceHolder对象----->(callback)*添加回调函数----->()获得Canvas对象并锁定画布------>*Canvas绘画------->(Canvascanvas)结束锁定画图,*并提交改变,将图形显示。**这里用到了一个类SurfaceHolder,可以把它当成surface的控制器,*用来操纵surface。处理它的Canvas上画的效果和动画,控制外表,大小,像素等**其中有几个常用的方法,锁定画布,结束锁定画布**/***@OverridepublicvoidonCreate(BundlesavedInstanceState){(savedInstanceState);setContentView();myview=(TextView)findViewById();//获取控件对象Buttonbluetooth=(Button)findViewById();Buttonsin=(Button)findViewById();Buttonclear=(Button)findViewById();surface=(SurfaceView)findViewById();//初始化SurfaceHolder对象holder=();(WIDTH+50,HEIGHT+100);//设置画布大小,要比实际的绘图位置大一点paint=newPaint(); ();//画波形的颜色是绿色的,(3);(newMyButtonListener());//添加按钮***(newMyButtonClearListener());//添加按钮***(newCallback(){//按照上面注释,添加回调函数publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,intheight){drawBack(holder);//如果没有这句话,会使得在开始运行程序,整个屏幕没有白色的画布出现//直到按下按键,因为在按键中有对drawBack(SurfaceHolderholder)的调用}publicvoidsurfaceCreated(SurfaceHolderholder){//TODOAuto-generatedmethodstub}publicvoidsurfaceDestroyed(SurfaceHolderholder){//TODOAuto-generatedmethodstub}});//添加按钮***(newOnClickListener(){ publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub newDrawThread().start();//线程启动 } });} classMyButtonListenerimplementsOnClickListener{ publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub //如果没有翻开蓝牙,此时翻开蓝牙 if(!()){ IntentenableBtIntent=newIntent(); startActivityForResult(enableBtIntent,REQUEST_ENABLE_BT); } //此处我已经知道我对应的蓝牙模块的地址,所以省去扫描,配对的过程, //如果从头开始的话,需要添加很多内容。 /* *这是获得在手机中已经存储的已经配对过的蓝牙信息 *Set<BluetoothDevice>devices=(); if(()>0){ for(Iteratoriterator=();();){ BluetoothDevicebluetoothdevice=(BluetoothDevice)(); (()); ("\n"+()); //这里就是获取地址当然这里又不止一个信息,所有配对的信息都有, *你要选择蓝牙模块的地址,其实地址只是一个说法,它实际上是一个虚拟通道, *我也不太清楚,就称之为地址了 } }*/ BluetoothDevicedevice=("20:13:03:18:10:09"); try{ socket=(uuid);//建立连接 ().cancelDiscovery(); //取消搜索蓝牙设备,不写也罢,因为我压根没搜索 (); //建立连接,如果连接成功,此时蓝牙模块中的显示当前连接状态的指示灯就不会闪烁了,

最近更新

2024年六安钢铁控股集团有限公司校园招聘考试.. 146页

2024年包头职业技术学院单招职业适应性测试题.. 95页

2024年合肥包河区人力资源开发有限公司招聘笔.. 146页

2024年吉林铁道职业技术学院单招职业适应性测.. 96页

2024年四川德胜集团钒钛有限公司校园招聘考试.. 149页

2024年四川省川威集团有限公司校园招聘考试试.. 147页

2024年国家公务员考试行测真题及完整答案1套 116页

2024年国家公务员行政职业能力测验试题-言语理.. 117页

2024年国考行测言语理解与表达真题各版本 116页

大学驾校营销推广方案 28页

2024年安徽体育运动职业技术学院单招职业适应.. 94页

2024年宜昌兴发集团有限责任公司校园招聘考试.. 147页

2024年山东寿光鲁清石化有限公司校园招聘考试.. 148页

2024年山东科达集团有限公司校园招聘考试试题.. 146页

2024年广东省广物控股集团有限公司校园招聘考.. 147页

2024年广东省建筑工程集团控股有限公司校园招.. 148页

2024年广东省深圳市坪山区机关事业单位招聘35.. 87页

2024年广东省深圳市大鹏新区综合办公室招聘6人.. 90页

2024年广东省深圳市市属事业单位招聘759人历年.. 90页

外卖平台推广方案 27页

2024年广东省深圳市盐田区区属事业单位招聘26.. 88页

2024年广东省深圳市资本市场学院招聘工作人员.. 91页

壮族农产品活动推广方案 27页

2024年广东省深圳市龙岗区人力资源局招聘10人.. 90页

2024年广东省深圳市龙岗区宝龙街道办事处招聘.. 90页

2024年世界女排联赛全部决赛赛程表 5页

2023年北京市科学技术研究院及所属事业单位招.. 318页

上期开特下期出特公式 5页

个性人生格言49句 4页

国家标准GB13013-1991钢筋混凝土用热轧光圆钢.. 6页