本帖最后由 life_风雨中 于 2016-2-29 09:43 编辑
【CANNON试用体验】 -------- 1 蓝牙控制LED
收到板子半个多月了第一次写试用体验实在是太迟了,在这先给活动主办方道个歉。
拿到板子,我就迫不及待的开箱了,也没留啥开箱图,就直接上正题吧,从我的学习之路开始说起吧。
1.上图是电源部分的电路,先从这里说起吧,吐槽一下这个电源灯没焊,我手上没有这么小的灯珠,就凑活看吧。
2.折腾了看了看一些坛友发的帖,有人提到电源出问题的,我赶紧量了量电压,万幸一切正常,又把我的jlink改了改,改成4线的SWD,这里不写具体怎么改了,反正百度有接口定义,一搜就出来了。万事俱备,只欠东风。我赶紧把之前下载的历程下载到评估板上,打开手机,怎么也搜不到蓝牙设备(用的是苹果)。去群里问了问,让我更新一下程序。这里把链接贴上程序更新地址 3.程序更新完了,下进去可以搜到了,板上的LED能被远程控制了,第一个例程算是能跑起来了。
下面就该分析程序了,就拿这个蓝牙远程控制的例程来简单分析一下吧 这个例程的框架挺好,首先,看一下main主函数,依次是固件库的初始化,时钟初始化,GPIO口的初始化,串口调试的初始化,然后等待一段时间,然后SPI初始化。HCI_Init()是一个链表初始化,然后在复位蓝牙芯片,然后在初始化时钟,on_ready()是一个通用的函数,在这里是蓝牙配置,while(1)循环里就是查询消息,然后执行动作。这个应该是一个通用的文件,用户程序部分应该在app.c文件里。 打开app.c文件,可以看到最上面定义的就是蓝牙的名称及地址,然后是on_ready()的实现部分,可以看到,函数里面设定完成后就开始广播了。 ble_device_on_message()函数里面是收到消息后,响应的函数。根据不同的值点亮或者关闭LED。 其实有些细节地方还没看懂,慢慢看慢慢更新吧
|