关于蓝牙安卓APP软硬件数据收发小结

大家好,本人小白一个,从去年暑假接触stm32单片机开始,已经过去快一年了。大一时候的不懂事,大二才知道努力,现在,才知道实践的宝贵。花了快半年,断断续续的,带队做了一个小项目,软硬件结合。今天已经能拿出手参加比赛了,心中无比欣慰,所以在此对“技术成长”、“心里收获”做总结

好了,直奔主题,都是干货,注意记笔记哦。

技术部分:

好奇心1:STM32F103C8T6能做实时时钟吗?

好奇心2:OLED能实时显示单片机传输过来的数据吗?

好奇心3:蓝牙实时发送数据,OLED上能显示吗?

好奇心4:自己写的安卓软件与蓝牙模块配对时应该注意哪些事情?

好奇心5:OLED可以怎么玩?

好奇心6:正点原子接收数据中断标志位的个人简洁以及改编又该如何下手?

好奇心7:通过按键,能实现OLED上显示内容的动态变换吗?

大家可以猜一猜。由于这是杂记,就不贴代码了,如果想要代码,文章末尾有联系方式。

回答1:C8T6完全能够实现实时时钟功能,具体细节在正点原子时钟源讲解部分有提到。注意细节,注意细节。不但可以做到秒中断,还可以实时显示时间。

回答2:OLED显示本身就和LCD屏幕显示操作相类似,不过个人觉得最难缠得地方在于设置显示数据的起始位置。(还有显示汉字时,搞清楚正点原子配套软件的配置,如果配置错了,那么就很尴尬了)

回答3:蓝牙说白了就是一个灵活的串口,只要单片机上有串口外设,单片机串口接收到数据=蓝牙接收到数据。所以,当蓝牙发送数据给OLED,就等同于串口给OLED发送数据,完全能够在OLED 上显示出来。

回答4:我觉得最重要的就是:先要有框架,想好自己APP的功能框架,而且考虑也实际,不能天马行空胡来。APP与蓝牙连接,首先要实现蓝牙传输数据的功能,然后再考虑不断添加其他功能。最重要的是:发送数据的格式应该是什么?小编的项目就是因为接收数据格式一改再改,导致浪费了大把的时间才完成。

回答5:正点原子的代码我就不谈了,没问题。只是注意单片机从蓝牙获取数据时,最后的结束标识符,一个是空格,一个是回车。0X0D=13,0X0A是10,但是对应的专一字符位\n和\r.由于没有意识到这个错误,安卓APP中发送的只是\n,小编以为空格键+ENTER键就是换行+回车。结果这个错误的常识,让小编浪费了几乎1周的时间来寻找问题。(身为程序员,感觉很丢人,这么基础的东西都犯错)

回答6:我觉得修改正点原子的串口接收中断标识位,这是几乎没有意义的事情。如果你读懂了回答5,但是也不是不能改,可以改。只是要先弄懂正点原子代码,然后只改动那几个数据就可以了。

回答7:完全可以,就利用短暂的延时函数+中断函数(改变要显示的内容)---》显示,按照这个逻辑来,就没有任何问题。升值你可以再OLED屏幕上实现“流水灯”。

个人总结部分:在开学一个月内,也将平衡车基本做完了,只是实现平衡功能,因为其他功能熟练掌握了,就没有必要再重复多次(初学者可以多做一些功能)

历时几乎半年的项目,心里收获挺多的。

1;高效性:在做东西之前,一定要有一个清晰的思路,没有按照思路,预定的计划行事,效率是极低的。

2;学会思考:不能闭门造车,要与更优秀的人讨论。遇到问题,不能整个项目代码去找问题,要通过思考,缩小问题的范围,在众多可能导致错误的结果中,列出可能性,一个一个去尝试。

3;定位:最近和一个大佬学东西,感觉大佬的学习效率很高,并不是整天泡在实验室,学习,本来就是一种思维的锻炼,没有必要逼着自己呆在实验室里。但是,大佬对自己的要求非常严格,一旦要做一个东西,哪怕刮风下雨,他都是第一个到实验室最有一个走的。学习,不是骗自己。只有要求自己更严格,收获才能更多。

4;目标:盲目的学习,是没有意义的。

由于总结太杂乱,就不再贴上代码了。如果想要相关代码,请私聊小编,看清楚,是有偿的哦。有偿。

由于外界因素,本篇这与2019年3月31日完成,5月24日才能发出来,多有耽搁,请见谅。

我曾许下十年,只为最美的遇见,我是西伯利亚小强,有缘再见。

猜你喜欢

转载自blog.csdn.net/qq_41821562/article/details/88934519