尘世- 2024-03-30 08:56 采纳率: 80%
浏览 1
已结题

STM32多串口通讯的问题

首先,我通过重新定义一个printf函数的方式解决了,tputc函数无法多比调用的问题。用这个函数去驱动es8266连接阿里云进行工作。发现单独使用正常后续整个到小项目上。其余两个串口串口1用来打印数据串口2用来控制AS608红外指纹模块。
犹豫除初始化函数外都相同弱所以整个就是将三个函数移植进去就行了。但是发现wifi模块一直在初始化。卡在与手机热点连接的问题上了。重复连接并断开。

img


请帮我想想问题可能出在哪里。
补充:1修改了串口3的中断优先级为最优先
2清理了指针变量

  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-03-30 08:57
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据您的描述,您遇到的问题是关于STM32中多串口通信的应用。您描述了使用一个重新定义的printf函数来解决tputc函数不能多次调用的问题,并将三个串口功能移植到一个小项目中,但遇到了WiFi模块一直在初始化阶段卡住的问题。同时,您提到了修改了串口3的中断优先级为最优先,清理了指针变量。
    针对这个问题,我会提供一些思路和解决方案:

    1. 检查串口配置 :确保三个串口的配置正确,包括波特率、数据位、停止位、奇偶校验等设置。特别注意串口1和串口2是否与WiFi模块的通信端口冲突。
    2. 排查串口中断 :检查串口中断的优先级设置是否正确,确保没有发生冲突。可以尝试调整优先级或者关闭不必要的中断,看是否有改善。
    3. 检查WiFi模块驱动 :确保WiFi模块的驱动程序正确,没有问题。可以尝试使用其他串口或者其他方式(如SPI)与WiFi模块通信,看是否正常工作。
    4. 检查串口数据处理 :检查串口数据的处理逻辑是否正确,是否有可能导致死循环或者阻塞现象。
    5. 查看WiFi模块状态 :通过调试信息或者状态指示灯等方式,查看WiFi模块的状态,确认是否真的卡在初始化阶段。
    6. 增加调试信息 :在代码中增加一些调试信息输出,以便更好地理解程序的执行情况,可能有助于找到问题所在。
      请尝试以上方法,并逐步排查问题,看能否解决WiFi模块初始化卡住的问题。如果还有其他问题或者需要进一步帮助,请随时告诉我。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月30日

悬赏问题

  • ¥15 springmvc ${validatedvalue} 是取值 取名称的有吗
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询
  • ¥15 URL地址href跳转问题
  • ¥15 mysql数据库备份恢复
  • ¥15 mmdetection mask-rcnn