Firefly开源社区

标题: FireBLE的双串口程序 [打印本页]

作者: Goshawk    时间: 2016-6-2 16:38
标题: FireBLE的双串口程序
帖子将简单说明下QN9021双串口的程序以及简单讲解,有问题的话,欢迎大家随时扔砖抛意见,这部分的资料比较少,大家共同努力专研吧~下面就直接进入主题。
双串口的编程,一目了然,是两个串口异步通信的编程,即QN9021的两个串口可以同时使用,不管是蓝牙连接之前还是蓝牙连接之后,串口1及串口2都可以单独发送和接收指令,至于什么是串口想必大家都知道了。这部分的程序是在蓝牙串口传透项目中实现的,代码已经贴到附录中~PS:因为上传有限制,程序分开上传了,下载后,需要新建一个文件夹FireBLE_DualSerialPort,将下载后的两个压缩包解压到该文件夹编译即可。


关于程序,我建议从main函数下手,如果真要刨根问底的话,那么可在startup.s中搜索程序的奥秘o~
那么简单的说下程序把,main函数进入后,进行一系列的内核和BLE协议的初始化和配置,下来,最为关心的就是硬件的配置,即在SystemInit函数中实现,关于LED,按键,串口等等的初始化,值得留意的地方是串口,经过几次测试发现,该处的配置如果在使用睡眠机制的情况下,则串口在usr_sleep_restore中的配置会生效,可以试下,看改下在SystemInit中的波特率,编译下载后有没有效果~

下面一步非常关键,重点提出的是com_uart_rx_start()这么个函数,经过大量测试,在蓝牙连接之前,尽管开启了串口接收中断,但是,如果在串口回调函数中写入打印函数,那么该打印函数也不会生效,原因是BLE的串口回调将会通过uart_read(。。。)这个函数调用(秘密就在uart_read中),那么串口回调函数才会正确将串口数据长传至TASK_APP层,这部分,已经跟大家说了架构,想必深入串口打印和串口回调中就不难了。

至于双串口,一个搞定后,一个进行同样的配置,就可以了~








FireBLE_DualSerialPort.rar

65.76 KB, 下载次数: 70, 下载积分: 灯泡 -1 , 经验 -1

src.rar

988.6 KB, 下载次数: 67, 下载积分: 灯泡 -1 , 经验 -1


作者: 安安    时间: 2016-6-4 09:41
:victory:技术贴,加精加精!!!
作者: 暴走的阿Sai    时间: 2016-6-6 10:49
好贴,已设置精华
作者: Goshawk    时间: 2016-6-18 14:53
谢谢,后面还会陆续更新
作者: 星光CHǔ使者    时间: 2017-10-11 15:40
大神,想请教您几个问题 qq 323241642
作者: zhengquanlin    时间: 2018-8-22 12:08
下载提示没权限,怎么回事。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1