程序卡在 B.处什么原因?如何处理?(串口配置无问题,重写putc无问题,但不打印)

前提

为了张流量券多加更一篇,是我2月份遇到的问题的总结,在我的笔记中,一直没发

现象:

已经配置好串口但不打印输出(printf指向串口1 的SR寄存器,其他引脚和usart配置无问题)

debug:

先运行,无error无warning
进行debug查询问题所在,发现串口初始化usart_init(115200);都没走到就卡死在如图下所示的 B .位置
在这里插入图片描述
经过这个现象,再去寻找答案

原因

程序卡死在B .处,说明有中断没处理
比如,启用了某个类型的中断,但是没有对应的中断处理函数,则会出现这种问题
知道是中断的原因后,我第一个想法是关于串口配置的中断,因为我现在做的是串口功能,检查
串口中断服务函数
中断配置位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查后并无发现有问题
继续debug
在初始化发现根本还没来得及串口初始化便卡死在B.也就是说是串口之前的初始化工作中的中断出了问题,继续debug
发现在sys_init();函数中卡死
在这里插入图片描述
卡在126行,但是125是赋值,所以我当时并不能确定是126行的错误,也不能说是125行(126还没运行,卡死的是125,但是125没有写逻辑只是进行了赋值)
我们就知道是SYS_TICK()出了问题,结合前面卡在B.位置,大约已经能够确定是系统初始化的中断没有打开,在stm32f4xx_it.c文件中找到了我们需要的函数
在这里插入图片描述
默认情况下该函数是被屏蔽的,打开问题解决,串口打印也成功。

总结

.B处一般是中断配制出错的问题
检查之后没有出错
可以看看是不是systick_handler是不是初始化了
本篇文章仅供解决问题参考。

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 05:02:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 05:02:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 05:02:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 05:02:03       18 阅读

热门阅读

  1. 文档智能开源软件

    2024-06-06 05:02:03       7 阅读
  2. 常用设计模式

    2024-06-06 05:02:03       7 阅读
  3. 层出不穷的大模型产品,你怎么选?【模板】

    2024-06-06 05:02:03       12 阅读
  4. HarmonyOs开发:关系型数据库封装之增删改查

    2024-06-06 05:02:03       8 阅读
  5. Vue基础(3)监听数据

    2024-06-06 05:02:03       8 阅读
  6. php fpdf使用记录

    2024-06-06 05:02:03       8 阅读
  7. 力扣1438.绝对差不超过限制的最长连续子数组

    2024-06-06 05:02:03       10 阅读
  8. 【面试题-011】如何设计一个三高系统

    2024-06-06 05:02:03       9 阅读
  9. 动态规划详细解释

    2024-06-06 05:02:03       9 阅读
  10. PHP编程入门:揭开Web开发的神秘面纱

    2024-06-06 05:02:03       8 阅读
  11. Android音频焦点

    2024-06-06 05:02:03       6 阅读
  12. go模拟经典面试题

    2024-06-06 05:02:03       9 阅读
  13. foreach、for in和for of之间区别?

    2024-06-06 05:02:03       9 阅读