美文网首页
STM8L051F3 IO表现异常

STM8L051F3 IO表现异常

作者: 928e93967d0f | 来源:发表于2017-12-15 11:09 被阅读0次

大概两个月前吧,公司有个电源模块输出控制的小项目,准备用单片机。硬件组同事选了STM8L051F3,STM8内核,虽然不是传统的C51,但基本寄存器操作都差不多,花了3天时间依次调好IO,定时器,串口(用来调试)和I2C(单片机与控制板通信)。整个项目一周左右就搞定了。

前天公司又有个改版的电源模块输出控制项目,还是用这款单片机,只是需要控制的IO口由原来的4路改成了8路(需要控制更多的电源输出)。本想着就几分钟的事情,结果搞了一下午都没搞定:对这8路输出管脚PB0~PB7初始化:

GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_High_Fast);

Out:输出;High:输出1;Fast:高速10M模式。

烧进去,万用表一测,输出PB0输出0.8V,再测其他几路,都是0.8V,什么情况这是?
进入DEBUG模式,发现走到函数void GPIO_Init(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)中GPIOx->CR1 |= GPIO_Pin;这一步直接报错了,寄存器CR1设置失败。

  • 改一下初始化GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_Out_PP_High_Fast);,运行正常,测到BP0电压3.58V,正确;
  • 再改成GPIO_Init(GPIOB, GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3, GPIO_Mode_Out_PP_High_Fast);,依然正常,但BP0~BP3电压位3.2V;
  • 再改成GPIO_Init(GPIOB, PIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6, GPIO_Mode_Out_PP_High_Fast);,BP0~BP6都是2.8V。
控制输出的IO管脚越多,差错越大,这明显是驱动不够啊。但单片机的IO管脚不都是独立驱动的吗,看了一下原理图: PB0~PB7即8路输出控制管脚
I/O output

图中只截取了EN_VCC1和EN_VCC3的电路,由前面那张图可以看到他们分别对应PB0和PB4,通过1k的电阻下拉倒地,其他六个管脚也一样处理的。所以我就只能将这几路输出管脚配置成推挽模式了(开漏模式需要上拉)。


昨天上午继续折腾,让同事把那8个下拉电阻都去掉,再拉测。发现ST-LINK找不到单片机,单片机工作不正常?先检测单片机的输入电源,VDD脚电压3.6V,正常;再测VSS脚,2.1V,不会吧!!!这是电源地脚呢,不应该是0V么?只能找来硬件组同事帮忙查一下了。反馈的结果是这个VSS确实是没有接地的,飞个线,拿回来一切都OK啦。

电源脚没接地居然还可以跑起来, 可能是PB的下拉电阻间接将其拉低了,外在表现就是单片机工作逻辑正常,输出驱动不够。


搬自:我的CSDN

相关文章

  • STM8L051F3 IO表现异常

    大概两个月前吧,公司有个电源模块输出控制的小项目,准备用单片机。硬件组同事选了STM8L051F3,STM8内核,...

  • Realm 配置models异常

    异常io.realm.exceptions.RealmException: Could not find io.r...

  • Rxjava Single.zip 抛出Undeliverabl

    异常信息 io.reactivex.exceptions.UndeliverableException: The ...

  • 标准IO流异常处理

    标准IO流异常处理 代码块

  • 账户异常表现

    1、有展现,有点击,有咨询,无转化? 2、有展现,有点击,没咨询? 3、有展现,无点击? 4、无展现? 5、平均点...

  • 异常&IO(File类)

    day19(异常&IO(File类)) 1_异常(异常的概述和分类) A:异常的概述异常就是Java程序在运行过程...

  • IO流

    IO流:异常,File,递归 异常:Throwable 严重问题:Error 问题:Exception分为:编译时...

  • MultipartFile.transferTo(targetF

    时间:2020.12.4 异常:java.io.FileNotFoundException: /home/jdp/...

  • 如何优雅的设计 Java 异常

    来源:Lrwin lrwinx.github.io/2016/04/28/如何优雅的设计java异常/ 导语 异常...

  • Day 16

    文件File 路径 IO流 流中的异常处理

网友评论

      本文标题:STM8L051F3 IO表现异常

      本文链接:https://www.haomeiwen.com/subject/dtvrwxtx.html