在做最近的项目时,我发现一个这样的问题:对STM32中的IO进行配置(以对B系列下的PB10、PB13配置成输出模式为例),即使在配置参数一样的情况下,这两个IO输出能力还是有很大的差别。
情况一:如图焊接电路,两个IO口配置的是同样推挽模式,编写程序使得LED灯进行闪烁,我当时碰到的情况就是一个LED灯能够闪烁,另一个LED灯死活不闪。后来换成三极管驱动LED灯的方式,才解决这样的问题。由此可以看出IO口的驱动能力很弱,而且不稳定。


情况二:如图焊接电路,两个DS18B20信号线对应的IO口配置成相同的输入输出模式,编写程序使得STM32读取DS18B20的温度值,并且分别反馈到电脑的上位机软件上。有一个DS18B20的温度能够正确并且及时的反馈到上位机软件上,另一个DS18B20就比较牛逼了,STM32能够检查到IO口上连接了这个DS18B20,并且能够读出一个温度值。但是读出那个温度值之后,不管这个DS18B20外界温度如何变化,上位机软件上就是不再更新这个DS18B20的温度了。更悲催的是,程序运行到一段时间后,STM32就开始冒烟发烫。我用万用表测量STM32芯片的VCC和GND,发现两者导通了。显然,STM32被击穿。

我对于这个问题的现象,一开始以为是我的电源正负极断路了,当我检查时,发现电源输出正常。众所周知,STM32正常的擦写次数是很多的,一定是因为什么原因导致STM32被击穿。
后来,我觉得我的电路没有什么问题,我就直接换了一个STM32模块,发现问题依旧存在,STM32被烧坏。这就让我很郁闷了。
再后来,因为我觉得DS18B20的温度读取不正常,可能和DS18B20的信号线有关系。所以我抱着试试的心态,将其上拉电阻去掉,再上电观察上位机的数据时,发现上位机能够正确显示DS18B20的温度值。
最后可以确定可能是上拉电阻影响了STM32的IO口正常工作,并且持续上拉的话,还会导致STM32被击穿。(我的上拉电阻接的电压就5V,也不知道为啥连5V电压STM32也受不了)
对于以上两个问题我进行以下总结,STM32的IO口相互之间还是有一定差别的(即使是在同样的A或者B等系列之中的IO口)。STM32之前一直是我眼中很稳定的芯片,现在发现也不过如此。正因为碰到这样的问题,更加坚定了我以后走嵌入式的道路。

STM32的IO口有幺蛾子(bug)相关推荐

  1. stm32的IO口的复用功能(即AFIO)

    关于stm32的IO口的复用功能,可以参考这篇博客,写的不错. https://blog.csdn.net/u013082827/article/details/77543394

  2. STM32芯片IO口的配置以及上拉下拉电阻介绍(一)

    STM32芯片IO口的配置以及上拉下拉电阻介绍(一) IO口常见的配置方式 推挽输出 开漏输出 STM32芯片做硬件研发的朋友们都知道.但是还是有很多做硬件的新朋友"只知其然而不知其所然&q ...

  3. STM32中IO口的8中工作模式

    该文摘自:http://blog.csdn.net/kevinhg/article/details/17490273 一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两 ...

  4. 24.STM32的IO口扩展PCF8574

    1.IO口扩展芯片 PCF8574是一款带IIC总线,可使大多数MCU实现远程I/O 口扩展. 该器件包含一个8位准双向口和一个IIC总线接口.(通信接口IIC,2根线可以扩展为8个口) PCF857 ...

  5. stm32、IO口、中断、串口、定时器讲解

    目录 一.IO口的八种模式 二.IO口的配置 三.外部中断配置 四.串口配置 五.定时器配置 六.项目 一.IO口的八种模式 输入 浮空输入:浮空,顾名思义,就相当与此端口在默认情况下什么都不接,呈高 ...

  6. stm32读取io口高低电平计数_最全的STM32八种IO口模式讲解(已经标注,新手必备)

    以及上拉输入.下拉输入.浮空输入.模拟输入的区别 最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: ( 1 ) GPIO_Mode_AIN 模拟输入 ...

  7. [技术讨论]STM32 IO口输出之推挽输出和开漏输出对比

    先上一个总览图 众所周知STM32的IO口可配置成输出和输出,其中输入有四种模式,输出也有四种模式,分别如下: 输入: GPIO_Mode_AIN-----------------模拟输入 GPIO_ ...

  8. STM32 IO口的八种模式

    [冉冰的成长日记007] STM32 的 IO 口可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复 ...

  9. STM32笔记 GPIO介绍及IO口操作 STM32F0 利用C语言位域实现仿位带操作

    文章目录 GPIO简介 工作方式 相关寄存器介绍 IO 操作步骤 IO口三种操作细解 附录:C语言相关 偏移地址与绝对地址 GPIO简介 GPIO:每个连接到I/O总线上的设备都有自己的I/O地址集, ...

最新文章

  1. ElasticSearch 2 (26) - 语言处理系列之打字或拼写错误
  2. 线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?线程池中线程复用原理
  3. oracle 偶数与奇数,在PL / SQL中计算数字中的奇数和偶数
  4. lnmp环境搭建:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0
  5. 安卓Android Studio开发IDE的安装
  6. 1057 数零壹(PAT乙级 C++实现)
  7. 【报告分享】我国数字基础设施建设现状及推荐措施研究报告.pdf(附下载链接)...
  8. iOS 10 通知 --UserNotifications
  9. Python 矩形法求1/x的定积分(完美实现)
  10. 【git commit --amend 修改提交记录】
  11. m4a怎么转换mp3格式?详细的步骤
  12. wxid中文是什么_wxid开头的微信号是什么意思?怎么添加微信好友
  13. JavaScript高级学习之彩色小球球
  14. c语言实参和形参占用存储单元_在C语言中,以下说法正确的是()。 A.实参和与其对应的形参分别占用独立的存储单元。 B.实参和与...
  15. Machine Learning with Python Cookbook 学习笔记 第8章
  16. 宝宝巴士儿歌下载链接
  17. [RK3399][Android7.1] 调试笔记 --- Audio codec时钟源从BCLK1获取
  18. python开始_开始Python的新手教程
  19. 机械之美——机械时期的计算设备
  20. JavaWeb-02

热门文章

  1. 【nowcoder 219035】春游
  2. ISeeYou:一款基于Bash和Javascript开发的社会工程学网络钓鱼工具
  3. php 微信平台,【php】微信公众平台
  4. VUE 查找数组中符合条件的对象
  5. 摆脱社恐六部曲, 你可以的!
  6. 计算化学领域的黑科技
  7. java获取拼音_java获取中文拼音
  8. 视频教程-信息系统项目管理师-通关教程4-软考
  9. 小黑为四川大学实习金融专业同学解决了困扰好久的一个代码小bug,获得成就感,和清华实习同学约饭啦(被请客),继续向前的leetcode之旅:145. 二叉树的后序遍历
  10. php artisan code,源码解读 Laravel PHP artisan config:cache