|
FireBLE的双串口程序
发表于 2016-6-2 16:38:32
浏览:12130
|
回复:5
打印
只看该作者
[复制链接]
楼主
帖子将简单说明下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层,这部分,已经跟大家说了架构,想必深入串口打印和串口回调中就不难了。
至于双串口,一个搞定后,一个进行同样的配置,就可以了~
|
|