首页 > 其他分享 >STM32在不支持5V输入IO口输入5V电平带来的奇怪现象

STM32在不支持5V输入IO口输入5V电平带来的奇怪现象

时间:2024-05-23 22:40:00浏览次数:21  
标签:定时器 5V STM32 单片机 IO 输入 调试器

  今天在使用stm32单片机的时候,发现了一个奇怪的现象,调试器经常识别不到单片机,给单片机重新上电后有时就正常,但重新下载又无法识别。刚开始以为是调试器坏了,于是更换了调试器,但没有换调试器的杜邦线,还是相同的问题,因此把调试器故障排除了。然后又尝试了降低SW频率、更换调试线,问题还是依旧。
  最后把怀疑对象转移到了单片机上。我把调试器接到另外一个单片机核心板上,多次调试都能正常识别。于是便认为是单片机的问题。然后更换了一个核心板,把原来的线路都连接到了新的核心板上。又进行了几次调试之后,发现原来的问题又出现了。这时,我便无法理解这奇怪的现象了。
  我又想到,单片机除了无法被调试器识别还有另一个奇怪的现象,就是有一个定时器会自己停止,在调试时查看定时器使能寄存器是使能的,但时定时器并没有计数。根据这些现象,我感觉单片机似乎是被什么东西给干扰了。这时,我想到了我给单片机定时器输入的一个输入捕获是5V的电平,这个信号是过零比较器的输出信号,一个频率1K的信号。虽然这个引脚是不支持5V电平输入的,但是因为之前了在单片非5V忍受的引脚输入过5V的信号,当时并没有遇到问题,所以我也就没有对这个信号处理就直接输入给单片机了,然后我把这个IO上串连了一个5.1K电阻再接入原来的信号,所有的故障都消失了。
  这次经历让我意识到,一些看似没多大问题的不规范做法可能会给我们带来一些隐患。在这里我使用通过电阻给IO输入5V信号,虽然解决了问题,但这样的操作也是不可取的,是我为了偷懒的做法。还有,意外停止的定时器并不是输入捕获5V信号的那一个定时器,这种找不到规律的现象也说明可能是遇到了干扰。
  对这个问题简单的记录一下,希望可以对大家提供一些帮助。

标签:定时器,5V,STM32,单片机,IO,输入,调试器
From: https://www.cnblogs.com/hizrd/p/18209463

相关文章

  • CubeMX离线安装stm32f1固件包
    一.打开CubeMX软件点击Help选择Manageembededsoftwarepackages二、找到STM32F1版本最新的固件包,点击install 三、登录账号 四、等待下载完成五、下载完成......
  • vue 输入框maxlength不影响拼音输入
    直接设置input的maxlength会导致最后几个字无法用拼音输入,比如最大长度还剩两个字,我想输入'项目',当我拼音输入'xi'之后,后面的'angmu'是打不出的。可以不设置maxlength,而是用 this.$nextTick(()=>{})在用户输入完之后,裁剪文字<template><viewclass="input-view">......
  • 输入自带边框的文字
    输入自带边框的文字首先,我们选中文本工具,在Illustrator中输入文字。然后,依次点击窗口,外观,再点击添加新描边。点击“外观”面板下方的第三个“添加新效果”按钮,在弹出的菜单中,选择转换为形状。参考链接:https://blog.csdn.net/weixin_35387135/article/details/112739759......
  • 一个页面从输入URL到加载显示完成,这个过程发生了什么?
    目录一、解析URL1、流程2、URL格式:3、示例二、浏览器封装HTTP请求报文1、流程2、HTTP请求报文例子3、封装三、DNS解析1、缓存判断1.1、浏览器缓存1.2、操作系统缓存1.3、路由器缓存2、递归查询至ISPDNS服务器3、迭代查询过程4、保存结果至各级缓存四、建立TCP连接(三次握手)1、三次......
  • 嵌入式Linux中的LED驱动控制(以野火STM32MP157开发板为例)
    在嵌入式Linux系统中,由于从硬件到软件都是自己定制的,所以很多时候需要对自己定义的设备编写驱动程序。本例就以野火STM32MP157开发板为例,讨论如何控制开发板上三个LED的亮灭。先来看一下LED部分的电路原理图,如下所示。从上图中可以看到,三个RGB颜色的二极管采用共阳接法,因此在......
  • stm32cubemx+cmake vscode开发
    stm32cubemx在2.17之后可以新建cmake工程文件,然后就可以在vscode中无痛编译单片机程序,可以再配合openocd等编译调试下载1.准备1.1stm32cubemx1.2vscode1.3arm-none-eabi-gcc2.cubemx生成cmake工程文件2.1利用__weak函数实现cubemx代码与用户代码分离2.2利用宏定义......
  • stm32 bootloader的app中断向量偏移设置,HAL库
    如何设置Hal库的中断向量偏移看前几篇的stm32f103c8t6HAL库更改中断向量表(app部分)-这一切足够了-博客园(cnblogs.com)我这里bootloader的APP开始地址就是0x08006000,中断向量偏移0x00006000设置完成之后编译mdk,将生成的bin文件使用ymodem写入0x08006000中这里设置一个IO......
  • stm32f103c8t6使用bootloader进行ymodem下载和app程序测试,部分总结(暂未测试中断向量偏
    bootloader程序部分(功能测试)print_boot_message();/*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/uint8_tkey_get_state;while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3*/key_get_state=g......
  • mdk生成bin文件,stm32 bootloader跳转地址问题
    stm32的bootloader使用ymodem烧写app程序,app程序不能使用hex文件hex文件带了地址信息,需要使用bin文件作为app程序写入打开魔术棒在这里填入fromelf-bin-output./stm32f103_app/stm32f103_app.bin./stm32f103_app/stm32f103_app.axf   其中./表示项目所在位置,居......
  • 指针练习输入十个数
    将最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1.输入10个数。2.进行处理。3.输出10个数。#include<stdio.h>#include<math.h>voidInput(int*arr);voidChange(int*arr);voidOutput(int*arr);intmain(void){Input(arr);Change(arr);......