笔记1中的蓝牙点灯是可以运行的,但是有时又会在连接过程中死机,笔记2中经过调试,通过屏蔽log输出的模块解决了此问题,问题定位到了uart。
那到底uart有什么问题?
在对这套工具和代码不熟悉的情况下,根据以往经验,这是不是串口配置问题?应为串口输出中出现了大量\0,偶尔能冒出一行正确的字符。
顺此思路,代码中检索,似乎没有串口配置,那就看看软件组件中:
尽然这三个组件都没有安装!那工程是如何编译通过的,还有突然冒出来的输出正确是怎么回事?
此两点都有悖于以往的经验。
看到三个组件,安装哪个?
只能阅读文字说明,不行就查下开发文档,再不行就蒙!此处直接蒙:
先安装uart core,右边也是这么说的,再随便选USART,因为我不知道EUSART是什么?
上图2安装时候跳出对串口实例的命名,蒙选vcom。
以上两个安装完毕多出一个子项目:
点进去设置:
完了,编译运行,电脑串口能顺利打印日志,手机连接后不再死机。
唉,这都是蒙的功劳啊。
但是提出了问题:
1. EUSART是什么?
2. 板子原理图确认一下接线
查阅芯片参考手册《EFR32xG27 Wireless Gecko Reference Manual.pdf》(注意这个参考手册需要官网搜索下载,在ssv5中似乎找不到):
答1:
目前我想只需知道这就是一高级串口。
答2:
由于这开发板底板就是美国芯片大杂烩,这玩意儿本身就是入门第一坑……完全做不到简单明了。
只要找到jlink的uart输入即可,这里就从PA5、PA6反推过来吧,这个板子线路经常出现这样的情况,就是底板上不同的接口,实际上是在蓝牙主板中进行了连接,例如此处的VCOM的RX和TX:
在底板上搜索P9与P11是找不到与主控芯片的连接,需要跟踪F6和F7这一分支:
经过中间的若干选通线路最终找到实际连接了st主控的PA9和PA10,到此,该问题得以释疑。(可知此开发板是多么的不友好了)
最后,BG27的UART1引脚说明
PA5:uart-TX,连接EXP12,以及BreakOut的P9
PA6:uart-RX,连接EXP14,以及BreakOut的P11