ti blueteeth stack 1.3.2 part1

来源:互联网 发布:中国联通网络wifi使用 编辑:程序博客网 时间:2024/05/30 04:03

      这个就是指的其他东西的一部分东西,哈哈

      这个是去年开始的项目,我做了个关于蓝牙打印机的东西,一开始以为难点在于搞打印机,字库什么的,纯是个硬件的玩意儿,没想到低价买了个打印头,完全意外233 基本字库加国标等全都做好了,而且支持串口通信,就是就个板子加个头,丑是丑了点,但是打印速度还可以,热敏的头,所以用了个6v2a的插头打印出来颜色也正。

      开始以为蓝牙方面会很简单,买了个hm-10的一对蓝牙头加底托(-->不是广告),基本是可以上电连接+双向通信,可是无法做到自定义的发送,得在两端各加个微处理器处理串口得消息,我就觉得太占体积了,而且接受部分要个双串口得芯片,而且两端只有一个p0.0的口引出,我就gg了,放弃了这对总价值60的片子,不过最近有了个小idea,准备玩玩,这是后话。不过可以买邮票封的hm-10,自己做个底板,就可以玩玩了,不过不能编程,io再多也没用,万一把gnd弄叉了板子就玩完了。。毕竟rf的gnd搞不好就跪了

     我刚入门TI BLUETEETH STACK的时候,由于不是很了解,加上给的教程是1.3.2的,于是就顺手上了1.3.2,结果发现对于uart稳定性没有很好,在1.4.0中已经修正这个问题了。但是在1.3.2中如果要一定程度上提高uart稳定性,可以在init中    


把这个函数给屏蔽了,误码率会好一些,但不屏蔽的话大约会有1%不到的误码率


      其中基本的main的顺序可以随手一搜就都有了,大概描述一下哈

      

     start_system()之后就不会跳回来了,就进了run_system的函数了

     一开始自然是init

     

   然后这里面我们自己定义一些行为的话在gap gatt层,最后的simpleperipheral是自己定义的应用层

   gap主要定义了连接的行为以及状态,以及相应的回调函数

   gatt则是定义一些service和相应的attribute

   simpleperipheral顾名思义就是自己上层的处理的函数,主要和gatt层有关 

   在simpleprofile中定义好你需要的特征值,然后定义好相应的set,get的函数,在simple peripheral中定义好特征值改变的回调,基本的收发就可以实现了 

   但是由于central和peripheral角色的设定,主到从的发送较容易实现

   1.设定一个特征值,支持读写

   2.在应用层的串口定义好发送函数,写数据进特征值

   3.从机的判断特征值的数据改变,发送一个msg,然后读取之后,设定好串口回调函数,就可以串口输出消息了


   这就是一个简单的连接的建立了,不过要实现从到主的消息发送则是需要设定新的特征值,并且标记为notify的属性,然后在主机激活了监听从机的值之后,从机便可发送到主机了,也可以在主机初始化时候就开始激活监听。

   

   同时两机通信之间主要在gap的连接状态,gatt的数据改变的处理上,对于消息的处理以及连接判断均可以在event处理中实现,包括断线重连,gatt层消息的处理,周期发送等,以及同一台机器不同层之间的消息处理可以通过msg实现,坐等下次来填这个坑

   

   这次主要写了个概览,关于msg event这个坑,以及gatt层特征值的定义也是个坑,以后会填这两个坑,估计一共4个part,最后一个part是总结把~ 


   不过不会太久,马上就要写结题报告了,到时候肯定会着重于这部分的叙述,两周内会把这个系列结束


    有问题可以评论,也请高手指点,大家一起交流 ^_^

      

0 0
原创粉丝点击