STM8L051F3 IO表现异常

2019-12-10来源: eefocus关键字:STM8L051F3  IO  表现异常

    大概两个月前吧,公司有个电源模块输出控制的小项目,准备用单片机。硬件组同事选了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, GPIO_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路输出控制管脚

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


    。。。。。。。    


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


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

关键字:STM8L051F3  IO  表现异常 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic482481.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8L 设置输入模式读取PIN脚高低电平就是个坑
下一篇:分享调试SI4432的一些小经验

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8L051F3_02_EXTI应用
本章介绍STM8L051F3的EXTI相关知识,内容分为以下几部分:EXTI简介KEY外部中断检测1、EXTI简介EXTI也是属于GPIO的知识点,应用比较广泛。STM8L051F3每个I/O口在输入模式下都能配置为中断,在这个配置下,一个信号沿或电平输入到I/O口上将产生一个中断请求。外部中断只有在端口的输入模式下才有效。可通过配置寄存器Px_CR2相应的位来独立地使能或禁能某个端口的外部中断功能。另外,可通过ADC_TDRH和ADC_TDRL寄存器来禁用施密特触发器节省功耗。2、KEY外部中断检测2.1 KEY的外部中断配置本小节介绍将GPIO配置为外部中断输入模式,并通过KEY(PC4)来触发一个外部中断信号,然后产生中
发表于 2019-12-14
STM8L051F3基础功能:内部时钟;TIM2定时器;串口及printf
STM8L051调试笔记之基础功能:系统时钟、串口、定时器都是基础而且必须的功能,这里放在一起统一记录,之所以用TIM2定时器,是因为想实现STM32的滴答定时器功能这些基础功能没什么好理解的,就直接贴代码了main.c:main.c:  void main(void)  {    enableInterrupts();    Sysclk_Init();    LED_Init();    Uart1_Init();          printf("
发表于 2019-12-14
STM8L051F3基础功能:内部时钟;TIM2定时器;串口及printf
STM8L051F3_0d_基础介绍
在开始学习外设使用之前,先了解一下STM8L051F3单片机系统中的基础部分:PWR(电源控制系统)、RST(复位系统)、CLK(时钟控制系统)。本节内容分为以下部分:PWR介绍RST介绍CLK介绍1、PWR介绍STM8L051F3是STM8L系列中属于低密度(low-density)产品,供电电压范围:1.8V~3.6V,供电的接口采用同一电源(VDD&VDDA&REF+接同一电源,只有一组电源输入引脚),系统电源供给框图如下:注:STM8L051F3没有DAC部分STM8L051F3具有上电复位(POR)/掉电复位(PDR)的功能。STM8L051F3内部有一个POR/PDR电路,可在1.5V以下运行,当检测
发表于 2019-12-12
STM8L051F3_0d_基础介绍
STM8L051F3_04_PWR应用
本章介绍STM8L051F3的PWR相关知识,并重点介绍它的低功耗模式与应用。内容分为以下几部分:低功耗模式介绍WFI模式应用1、低功耗模式介绍STM8L系列就是STM8的低功耗系列,所以该系列的主要特点就是低功耗。STM8L051F3低功耗模式如下图:注:在执行HALT指令之前,应用程序必须通过清除相应的外设中断配置寄存器的中断标志位来清除所有的外设中断,否则HALT指令不会被执行,程序继续往下执行。Wait mode(等待模式):Wait mode有两种:一种是WFI(通过中断方式唤醒);另一种是WFE(通过事件方式唤醒)。执行WFI或WFE即可进入到相应的Wait mode。在该模式下,振荡器是保持运行的,CPU是停止运行
发表于 2019-12-12
STM8L051F3_0c_新建工程
本文介绍基于IAR For STM8 + STM8L15x-16x-05x-AL31-L_StdPeriph_Lib(官方固件库)来新建STM8L051F3工程,STM8L的标准固件库可以到ST的官方网站中找到并下载,下载地址:http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm8-embedded-software/stsw-stm8016.html。1)把下载的标准固件库解压并打开,可以看到里面有如下内容:2)上图中带***星号的文件夹,里面的有部分内容是新建工程所需要的,在建立工程之前,先在桌面建一个
发表于 2019-12-12
STM8L051F3_0c_新建工程
STM8L051F3_03_CLK应用
本文介绍STM8L的CLK相关知识。内容分为以下几部分:CLK简介系统时钟频率切换1、CLK简介STM8L051F3的时钟控制系统设计时非常稳定的,同时也很容易使用,它可以使得MUC在低消耗下获仍然保持优性能。用户可以通过管理分配到CPU&外设的时钟来达到降低功耗。STM8L051F3有一个安全无干扰的时钟切换机制允许用户切换系统时钟源,同时可以通过预分频器来控制系统时钟频率。时钟结构图如下:注:STM8L051F3的Peripheral Clock enable是13 bit,没有LCD外设STM8L051F3的系统时钟源有以下4种:16MHz内部高速(出厂已校准)RC时钟HSI1~16MHz外部高速振荡器时钟
发表于 2019-12-11
STM8L051F3_03_CLK应用
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved