关于STM32驱动点阵的问题整理及科研思维小酌

2019-11-09来源: eefocus关键字:STM32  驱动点阵  16*16

之前用51单片机成功将5块级联的16*16点阵成功驱动,闲来无事,沉积内功,用STM32驱动这几个点阵,本觉易事,没想到点阵豆豆竟三天耍脾气,不配合。一筹莫展之际,和别人聊微信,顺手掐断了豆豆的VCC,GND,惊呼哇塞,预期效果。真是无心插柳柳成荫。正预深入测试下去,停电,兴奋若狂,迫不及待,莫非上帝知道问题要揭晓了,急了,连断电的招都使。停电两小时,由缺VCC可正常显示,加VCC反而不亮,已推断出问题范围。入夏的夜,和豆豆玩到10点半,终把豆豆抱。


硬件配置:MCU :STM32,工作电压3.3V;  驱动芯片74HC595; 16*16点阵:五块      


问题一:.点阵上电不亮,掉电正常显示


答:74hc595工作电压选择出现问题,输入电平与工作电平不匹配。


74HC595是CMOS芯片,工作电源电压是2V~ 6V。如果MCU的VCC是5V供电,则74可以是5V供电;若MCU是3.3V供电,则74也选3.3V,当74选5V时,因为3.3V的MCU输出高电平最大为3.3V,而此时74要求的输入高电平最小为3.5V,很明显MCU引脚达不到,会出现逻辑混乱,达不到输出效果,点阵不亮。


故障排除,将74HC595的VCC由5V接3.3V电平,因为MCU的VCC为3.3V。


问题二:.点阵屏的74H595不接VCC也正常显示,只是亮度低一些


答:74HC595等的VCC与GND之间有滤波电容,当MCU工作时,可以通过IO口传输数据时为这些电容充电,又IC引脚一般设计有箝位二极管,可阻碍电流流出,电容放电为74等IC供电,故可以正常显示,但亮度不够。该原因类似于单总线技术中的寄生电源供电方式。建议IC加独立VCC,按规矩来。


至于因时序,刷新频率导致的问题,按照相关手册要求解决即可。


花了三天悠哉悠哉的找不出问题,方向一对,三个小时,相关问题全部迎刃而解。再一次,体会到科研的绝妙之处,体会到长时间解决问题的快乐与兴奋。


(1)提出问题远比解决问题更有意义,提出一个高质量的问题,代表一个高质量的结果。虽然解决问题的过程很复杂,但解决问题总是1后面的0。科研,许多时候,不是难在解决问题上,而是非预期结果出现后,找不到原因。有时靠碰巧解决问题,有时靠现象反推问题。所有的努力都是为了在一堆猜想中,一个一个排除,一个一个具体。寻找问题的过程是漫长与繁琐的,但也因此当问题找准,系统性前进的时候,那种喜悦与快乐才是醉人的。


(2)动手实践中,应该培养忙找问题的经验。电路实验中,经常会因串扰而出现不确定性,这若干种不确定性中,包含着我们需要的那一种结果。所以,我们可以经常有意无意的用手弹弹信号线,上上电,断断电,只要我们期待的效果出现一次,就可以排除许多种猜想,加快问题解决。


人生而有涯,而学海无涯,谦虚务实,严谨乐观,胆大心细,孜孜问道。



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

上一篇:STM32下SPI模式通过MAX7219驱动8位数码管显示模块
下一篇:STM32 TM1640芯片驱动程序

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

推荐阅读

stm32正点原子学习笔记(29)独立看门狗实验
; IWDG_ReloadCounter(); 9     IWDG_Enable();10     11 }iwdg.h1 #ifndef __IWDG_H2 #define __IWDG_H3 4 #include "stm32f10x.h"5 6 void iwdg_init(uint8_t IWDG_Prescaler,uint16_t Reload);7 8 9 #endifmain.c 1 #include "exti.h" 2 #include "
发表于 2019-11-11
stm32正点原子学习笔记(29)独立看门狗实验
stm32独立看门狗时间设置
//prer:分频数:0~7(只有低 3 位有效!) rlr:自动重装载值,0~0XFFF.//分频因子=4*2^prer.但最大值只能是 256!//rlr:重装载寄存器值:低 11 位有效//时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms).void IWDG_Init(u8 prer,u16 rlr){IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器写保护IWDG_SetPrescaler(prer); //设置 IWDG 分频系数IWDG_SetReload(rlr); //设置 IWDG 装载值IWDG_ReloadCounter
发表于 2019-11-11
STM32的IWDG(独立看门狗)详细用法
章参考资料:《STM32F4XX 中文参考手册》IWDG 章节。1、IWDG简介:  STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析独立看门狗的功能框图和它的应用。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。  2 、IWDG功能框图剖析①独立看门狗时钟    独立看门狗的时钟
发表于 2019-11-11
STM32的IWDG(独立看门狗)详细用法
STM32独立看门狗:你看狗都独立了
参考GIT:STM32--软看门口--不需要任何硬件支持--它在IC里面已经集成了。(算是独立看门狗的误解吧)一个倒计数,减减减减减减,减到0就会触发一个系统复位信号也就是单片机重启了。喂狗呢?就是隔一段时间就给这个倒计数重现装载数据,保持它不要到0.头文件:#ifndef _WDG_H_#define _WDG_H_ void watch_dog_init(void);void feed_dog(void); #endif 实现:#include "stm32f10x_iwdg.h"#include "wdg.h"void watch_dog_init
发表于 2019-11-11
stm32f0 hal adc配置
Clock Prescaler:和系统时钟同步并且二分频Sampling Time :采样时间,采样时间是你通过寄存器告诉STM32采样模拟量的时间,设置越长越精确
发表于 2019-11-11
stm32f0 hal adc配置
STM32 MFRC522 IC读卡 程序及原理图
#include "stm32f10x.h" ///////////////////////////////////////////////////////////////////////MF522命令字/////////////////////////////////////////////////////////////////////#define PCD_IDLE              0x00               //取消当前命令#define
发表于 2019-11-11
STM32 MFRC522 IC读卡 程序及原理图
小广播
何立民专栏 单片机及嵌入式宝典

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

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