在keil5中调试串口遇到的问题

2023-05-16

1.问题

在keil5中调试stm32串口实验时,

向单片机的串口1发送数据,观察串口1的寄存器,此时串口1的中断服务函数会遇到无法进入下图if

的情况,此时观察串口1寄存器RXEN的值(由定义的变量my来接受)

my的值0x00,那么串口1寄存器RXEN的值确实时0;

那就有个问题,由数据手册如下可知

能进入中断服务函数,说明RXEN肯定为1,那么为什么进入中断之后,就变成0了?

2.解决

在调试时查看串口1的寄存器时不仅会观察RXNE,还会有DR数据寄存器

当观察DR数据寄存器时调试器会对DR寄存器进行读操作,由下图可知,

对DR寄存器进行读操作会将RXEN清零.

所以当一直观察串口1的寄存器时,向单片机发送数据会将RXEN置1,将进入中断服务函数,此时由于需要观察DR寄存器的值,调试器会读取单片机上DR寄存器的值,一旦读取RXEN的值将会被由硬件置0;

所以不会进入if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)的函数,因为此时由于调试器的读取RXEN的值已经发生变化;

当不观察串口1寄存器的值时,由于调试器不会去读取DR的值,那么程序会顺利执行;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在keil5中调试串口遇到的问题 的相关文章

  • KEIL5 调试STM32F407 停在LDR R0=SystemInit,不能进入main()函数

    点击魔术棒 xff0c 点击Debug 点击Setting Reset不要用Autodetect xff0c 选择SYSRESETREQ
  • keil5里错误怎么解决Undefined symbol STM32_Control (referred from main.o).

    解决方法 xff1a 遇见这样的问题是忘记添加 xff08 c xff09 文件了 xff0c 如果不知道添加哪个 xff0c 可以根据下面显示的错误点击转到定义文件 xff0c 和 c文件 哪个没有就是缺少哪个文件啦 xff0c 直接添加
  • 用KEIL5打开KEIL4的文件

    有时候我们会遇到 xff0c 下载了KEIL5时需要打开KEIL4文件的时候 这时候 xff0c 我们需要将两个兼容一下 我遇到了挺多的问题 xff0c 下面自己总结一下 xff1a 我是按照开发板的指导书的步骤来进行的 上面写的 xff0
  • STM32 Keil5 Bug记录 汇总和解决办法

    STM32 Keil5 Bug记录 汇总和解决办法 文章目录 STM32 Keil5 Bug记录 汇总和解决办法前言一 Warning1 warning no newline at end of file2 warning function
  • keil5[使用虚拟端口进行软件仿真串口调试]与[使用开发板串口调试]

    前言 xff1a 做串口调试试验 xff0c 写下此文章 介绍两种方式 xff0c 一种软件仿真 xff0c 一种硬件 1 虚拟端口进行软件仿真串口调试 xff1a 无需硬件 开发板 需要虚拟串口驱动 xff08 一个软件 xff09 xf
  • 02_Keil5报错 error: #5: cannot open source input file “XXX.h”: No such file or directory解决方法

    Keil5 error 5 cannot open source input file led h No such file or directory 是找不到包含文件 解决办法1 包含文件可以解决 解决办法2 如果包含了还是报 5找不到文
  • keil5仿真相关配置,解决相关bug

    一 keil5仿真时 xff0c 添加动态数值至观察窗口 xff08 watch X xff09 xff0c 但是值不变化或提示错误 原因分析 xff1a 1 1 未将观察的变量配置为全局变量 xff0c 需要将观察的变量配置为全局变量 x
  • Keil5下载烧录错误常见问题

    最常见的我们在入门使用STM32单片机之时会遇到各种各样的问题 由于STM32作为32为单片机 xff0c 比起诸如8051的8位单片机复杂了许多 xff0c 如果不使用库函数以及别人的封装库代码进行开发对于新手基本是不可能的 1 代码移植
  • keil5 添加注释说明模板

    我们使用 Keil uvision5 编写代码时 xff0c 为了规范代码 xff0c 一般会在文件开头对本文件进行注释说明 xff0c 同时我们也会在函数的开头对函数进行说明 但 Keil5 集成开发环境中没有这些注释模板 xff0c 而
  • keil5出现‘Target not created‘

    keil5出现 Target not created 新建工程中写了main函数进行编译时出现错误的问题 xff1a Using Compiler 39 V5 06 update 5 build 528 39 folder 39 D Kei
  • Keil5----跳转定义和查找功能

    一 Keil5 跳转定义 跳转定义 鼠标左键点击要查找的变量 方法1 xff1a 点击鼠标右键 xff0c 功能栏中有跳转定义的选项 方法2 xff1a 按快捷键 F12 具体操作如下图所示 xff1a 跳转结果 二 Keil5 查找功能
  • KEIL5 打开时候很多文件都自动打开解决方法

    Keil5 中修改配置 Edit gt Configuration gt Other gt Open most recent project 选中既可以 xff0c 下次打开Keil时候不会再打开很多文件
  • Keil5修改背景黑色仿VS

    直接修改配置文件global prop 可以在UV4下的安装目录直接搜索找到 xff1a 先备份一下原文件 xff0c 然后直接替为我配置好的文件 文件链接 注本博客方法转载与百度贴吧某高人 xff0c 在此谢谢 xff1a 此处链接
  • keil5无法跳转自己要查询的函数

    之前用keil5的时候想要查询函数的意思 xff0c 去跳转结果给我报错 xff0c 出现这个报错信息 原因是编译的时候没有勾选这个按钮 xff1a 勾选上之后重新编译就不会报错了
  • 汇总:使用keil5所遇见的一些常见问题以及解决方法

    一 新建keil5工程时出现这个警告 解决方法 xff1a 右键单击Keil STM32F1xx DFP pdsc xff0c 然后点开属性界面 xff0c 由于Keil STM32F1xx DFP pdsc文件是只读文件 xff0c 将只
  • keil5打开工程报错:error:not found device

    1 error not found device 解决方法 xff1a 将Project文件夹中的工程扩展名由 uvproj改为 uvprojx 原因 xff1a 前提是所有的库安装都是正常且正确的 xff0c 所以应该是如下问题 xff1
  • 【Keil】Keil5添加源程序和头文件

    xxx c就是源程序 xxx h就是头文件 源程序添加方法 双击文件夹 xff0c 例如图片上的Source xff0c 跳出弹窗 xff0c 选择需要添加的源程序即可 添加头文件的方法 1 首先点击图片红框处 xff0c 或是在文件夹te
  • keil5破解(备忘,有需要的可以下载)

    管理员身份运行 配置license 运行Keygen 网盘链接 https pan baidu com s 15sw4R0ePrICQoeRx2ELneA pwd 04eq 提取码 04eq
  • KEIL 生成bin文件

    1 首先对于keil5其编译生成的HEX文件 一般通过勾选如下 在进行ISP烧写时 就可以通过传送HEX文件进行烧写 2 对于烧写而言不仅仅可以通过HEX文件进行烧写 还可以通过BIN文件进行烧写 且BIN文件比HEX文件更小 设置BIN文
  • KEIL5中点击build会全编译的解决方法

    今天在笔记本上调试STM32时 发现每次点击build 总是会对工程内所有文件进行编译 相当于是rebuild的功能 开始以为是keil5版本的问题 经过网上查找并亲自测试 现得出解决办法 在Option中C C 一栏内 添加路径包含工程内

随机推荐