项目场景:
通过 STM32F407 与蓝牙模块 HC05 相连
问题描述:
本想着蓝牙模块与STM32的连接应该比较顺利,按照正点原子的例程进行配置就好,此类博客在网上也已经有了很多。例如:
https://blog.youkuaiyun.com/qq_42177385/article/details/96502182
但是原子例程中用的是串口3,串口2和3由于我自身设计问题,已经被占用,因此打算改用串口1。在将例程程序修改之后,发现出现了模块检测不到的问题。
@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); }
原因分析:
按理说只需要将例程中 usart3.h 和 usart3.c 两个文件中涉及到串口3的内容依样画葫芦修改成串口1就好,因此问题应该是出现在某段代码修改有问题上。
解决方案:
在 usart3.c 文件中,将下面函数同样修改成串口1相关的函数名:
void USART1_IRQHandler(void)
本文介绍使用STM32F407与HC05蓝牙模块连接时遇到的问题及解决办法。因串口资源冲突,尝试将串口3改为串口1后,出现模块无法检测的情况。通过对代码的仔细检查,最终找到并解决了问题。
2万+

被折叠的 条评论
为什么被折叠?



